【发布时间】:2017-05-25 17:22:19
【问题描述】:
我正在尝试构建一个包含子文档的 Mongoose 架构,这样我就可以拥有一个包含用户信息及其联系人的文档。这个想法是能够在联系人子文档上拥有 CRUD 功能,而无需单独的集合。
(对不起,说的很明显,只是想清楚)
所以父模式是“用户”,子模式是“联系人”...
我这样编写我的模型:
var UserSchema = new Schema({
login: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
email:{
type: String,
required: true
},
firstname:{
type: String,
required: false
},
lastname: {
type: String,
required: false
},
contacts:[ContactSchema]
})
var ContactSchema = new Schema({
contactFirstName:{
type: String,
required: true
},
contactLastName:{
type: String,
required: true
},
contactEmail: {
type: String,
required: true
}
})
但是当我运行我的 API 时,我收到一条错误消息:
TypeError:架构数组路径contacts的值无效
我对 Mongoose 还很陌生,但据我所知,这就是您实现子文档的方式。
谁能看到我错过了什么?
这是我想在我的 Express API 中调用的示例路由:
router.route('/')
//CREATE NEW USER
.post(function(req, res){
var user = new User();
user.login = req.body.login;
user.firstname = req.body.firstname;
user.lastname = req.body.lastname;
user.email = req.body.email;
user.password = req.body.password;
user.contacts.contactFirstName = req.body.contacts.contactFirstName;
user.contacts.contactLastName = req.body.contacts.contactLastName;
user.save(function(err){
if(err)
res.send(err);
res.json({message:'User has been created'});
})
})
【问题讨论】: