2017-07-30 28 views
0

我在這裏遇到問題。我目前正在使用node.js和MongoDB製作學校目錄。我在一個app.post請求,由於某種原因,我無法得到正在鏈接到學生登錄到控制檯的類的名稱,但createdClass.name將打印...Node.js cant log來自學生模型的類模型數據

這裏是代碼...

app.post("/students/:id", function(req, res){ 
    Student.findById(req.params.id, function(err, foundStudent){ 
     if(err){ 
      console.log(err); 
     } else { 
      Class.create(req.body.class, function(err, createdClass){ 
       if(err){ 
        console.log(err); 
       } else { 
        createdClass.student.id = foundStudent._id; 
        createdClass.student.name = foundStudent.name; 
        console.log(createdClass); 
        createdClass.save(); 

        foundStudent.classes.push(createdClass); 
        console.log(foundStudent.classes[0].name); 
        foundStudent.save(); 
       } 
      }); 
     } 
    }); 
    res.redirect("/students/" + req.params.id); 
}); 

而且,這裏是我的模型......

學生:

var mongoose = require("mongoose"); 

var studentSchema = new mongoose.Schema (
    { 
     name: String, 
     classes: [ 
       { 
        type: mongoose.Schema.Types.ObjectId, 
        ref: "Class" 
       } 
      ], 
     grades: Array 
    } 
); 

module.exports = mongoose.model("Student", studentSchema); 

類:

var mongoose = require("mongoose"); 

var classSchema = new mongoose.Schema (
    { 
     name: String, 
     student: 
     { 
      id: 
      { 
       type: mongoose.Schema.Types.ObjectId, 
       ref: "Student" 
      }, 
      name: String 
     } 
    } 
); 

module.exports = mongoose.model("Class", classSchema); 

預先感謝您,請讓我知道是否有任何我可以添加,使這更容易閱讀。

這裏是製作發佈請求的網頁...

<div> 
    <h1>Student Profile</h1> 
    <h2>Name: <%=student.name%></h2> 
    <div> 
     <h3>Classes: 
      <form action="/students/<%= student._id %>" method="POST"> 
       <%if(student.classes.length === 0){%> 
        <p>No classes linked to profile, please add class..</p> 
        <input type="text" name="class[name]" placeholder="Class name"> 
       <% } else { %> 
        <% student.classes.forEach(function(course){ %> 
         <li><%= course.name %></li> 
        <% }); %> 
       <% } %> 
      </form> 
     </h3> 
    </div> 
</div> 

回答

1

類是保留字,不能用於可變

+0

謝謝,我更新了這一點,但它仍然沒有按」工作 –