我有以下職位電話:如何處理node.js casterror?
.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);
我在這裏苦苦掙扎。如果任何人都可以看到爲什麼我得到這個錯誤,我將不勝感激。
感謝很多
你可以發佈成員模式嗎? –
同樣的事情發生在獎項上嗎?我沒有看到用這種方式使用模式。不是說這一定是錯誤的,但是如果'Awards.award.push'也不起作用,我們可能會進行一些嘗試。 –
這是我第一次嘗試。當地址正在工作時,我將獲得獎勵。當我希望智慧到來時,我會繼續嘗試。 – arcee123