【发布时间】:2020-07-23 19:11:37
【问题描述】:
我创建了 2 个用户(管理员和用户),并且我还为一个用户创建了许多 ToDo,但我的 ToDo 数组在我的用户架构中是空的。无法理解为什么 todo 任务没有分配给用户架构。
用户架构
var userSchema = new Schema({
name: {
type: String,
required: true,
maxlength: 30,
trim: true
},
role: {
type: Number,
default: 0
},
todos: [{
type: Schema.Types.ObjectId,
ref:"Todo"
}]
});
module.exports = mongoose.model("User", userSchema)
Todo 架构
let Todo = new Schema({
todo_heading: {
type: String
},
todo_desc: {
type: String
},
todo_priority: {
type: String
},
todo_completed: {
type: Boolean
},
user: {
type: Schema.Types.ObjectId,
ref:"User"
}
})
module.exports = mongoose.model('Todo', Todo);
这是我的路线
用户路线
router.get("/user/:userId/todos", isSignedIn, isAuthenticated, getToDos)
都都路线
router.get("/", getTodos)
router.get("/:id", getUsertodos);
router.post("/user/:userId/add", addUsertodos);
用户控制器
exports.getToDos = (req, res) => {
User.find({ _id: req.params._id })
.populate("todos")
.exec((err, toDo) => {
if (err) {
res.json(err)
}
res.json(toDo)
})
}
待办事项控制器
exports.addUsertodos = (req, res) => {
let todo = new Todo(req.body)
todo.save((err, todo) => {
if (err) {
return res.status(400).json({
error: "not saved"
})
}
else {
return res.json(todo)
}
})
}
【问题讨论】:
标签: node.js mongodb mongoose-schema mongoose-populate