我無法獲取引用數據以從另一個對象內登錄。無法獲取引用的對象屬性到console.log()
我目前有兩個型號...
VAR貓鼬=要求( 「貓鼬」);
學生:
var gameSchema = new mongoose.Schema(
{
name: String,
courses: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Course"
}
]
});
module.exports = mongoose.model("Student", gameSchema);
課程:
var mongoose = require("mongoose");
var courseSchema = new mongoose.Schema (
{
name: String,
student: [
{
id:
{
type: mongoose.Schema.Types.ObjectId,
ref: "Student"
},
name: String
}
]
}
);
module.exports = mongoose.model("Course", courseSchema);
當我CONSOLE.LOG(foundStudent.courses [0]。名稱),我得到了一個未定義,我想不通爲什麼.. 。
app.post("/students/:id", function(req, res){
Student.findById(req.params.id, function(err, foundStudent){
if(err){
console.log(err);
} else {
Course.create(req.body.class, function(err, createdCourse){
if(err){
console.log(err);
} else {
createdCourse.student.push(foundStudent);
createdCourse.save();
foundStudent.courses.push(createdCourse);
foundStudent.save();
res.redirect("/students/" + req.params.id);
}
});
}
});
});
這裏是展示頁面...
<div>
<h1>Student Profile</h1>
<h2>Name: <%=student.name%></h2>
<div>
<h3>Classes:
<form action="/students/<%= student._id %>" method="POST">
<% student.courses.forEach(function(course){ %>
<li><p><%= course.name %></p></li>
<% }); %>
<a href="/students/<%=student._id%>/courses/new">Add Course</a>
</form>
</h3>
</div>
</div>
您必須使用[填充](http://mongoosejs.com/docs/populate.html)自動獲取引用對象。 –
這應該在獲取路線中是嗎? –
是的,在任何查找方法返回一個'DocumentQuery'對象之後。這意味着回調必須移動到DocumentQuery對象的'exec'方法,例如:'Student.findById(id).populate('courses')。exec((err,res)=> ...) '。 –