我有以下电话:
.post(function(req, res) {
member.findById(req.params.member_id, function(err, result) {
if (err)
return (err);
new_address = {
street1 : req.body.street1,
street2 : req.body.street2,
City : req.body.City,
State : req.body.State,
Zip : req.body.Zip,
Lat : req.body.Lat,
Lng : req.body.Lng
};
if(result.address === undefined){
result.address.push(new_address);
}
else{
result.address = [new_address];
}
result.save(function(err) {
if (err)
return res.send(err);
res.json({ message: 'Address created!!!' });
});
});
});
由于某些原因,尝试result.save()
拨打电话时,我收到此错误:
{
"message": "Cast to undefined failed for value \"[object Object]\" at path \"address\"",
"name": "CastError",
"value": [
{
"address_type": "Home",
"street1": "2018 Elliot St",
"City": "Alexandria",
"State": "LA",
"Zip": 71301,
"Lat": 12,
"Lng": 32
}
],
"path": "address"
}
我的地址架构是成员架构的子级,如下所示:
var mongoose = require('mongoose'),
Schema = mongoose.Schema
var AddressSchema = Schema({
Address_type : String,
street1 : String,
street2 : String,
City : String,
State : String,
Zip : Number,
Lat : Number,
Lng : Number
});
module.exports = mongoose.model('Address', AddressSchema);
这是成员架构:
var mongoose = require('mongoose'),
Schema = mongoose.Schema
var Address = require('./address');
var Award = require('./award');
var MemberSchema = Schema({
FName : String,
LName : String,
address: [Address],
phone : {
type : String,
number : String
},
email: String,
gender: String,
DOB: Date,
rank : {
level : String,
updated: { type: Date, default: Date.now }
},
Awards : {
personal : Boolean,
award : [Award],
granted: { type: Date, default: Date.now }
}
});
module.exports = mongoose.model('Member', MemberSchema);
我在这里为此而苦苦挣扎。如果有人能看到为什么我会收到此错误,将不胜感激。
非常感谢
这里的问题是,Address
当您在.NET中定义嵌入式模式时,您尝试使用Model()MemberSchema
。您应该在定义嵌入式文档而不是模型时使用Schema。
var Address = require('./address');
根据相关文件中的导出语句,这是一个模型。要么导出模式,要么更好,您可以像下面这样从模型访问模式:Address.schema
因此,请在您的MemberSchema
定义中更改此行
address: [Address],
对此
address: [Address.schema],
在您使用它的其他任何地方,也有类似的变化,例如 award : [Award.schema],
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句