我不知道为什么我在使用nodejs的mongoose中这样做时会出错。 Mongo不保存对象卖家。
exports.edit = function(req, res) {
var id = req.param('sellerId');
Seller.findById(id, function (err,seller) {
seller = _.extend(seller, req.body)
seller.save()
});
};
这是错误:
没有侦测到侦听,投掷。考虑添加一个错误监听器 你的联系。 CastError。转换为ObjectId失败的值...
当我改变这样做时。没有错误发生,但它没有保存卖家的新价值
exports.edit = function(req, res) {
var id = req.param('sellerId');
Seller.findById(id, function (err,seller) {
seller = _.extend(seller, req.body)
seller.save(function(err) {
res.jsonp(seller);
})
});
};
当我发表评论时
// seller = _.extend(seller,req.body)
。两种方式都不会发生错误。当然,我不编辑任何东西
exports.edit = function(req, res) {
var id = req.param('sellerId');
Seller.findById(id, function (err,seller) {
//seller = _.extend(seller, req.body)
seller.save(function(err) {
res.jsonp(seller);
})
});
};
这是卖家架构:
var SellerSchema = new Schema({
created: {
type: Date,
default: Date.now
},
description: {
type: String,
default: '',
trim: true
},
payment: {
type: String,
default: '',
trim: true
},
address: {
type: String,
default: '',
trim: true
},
shipping: {
type: String,
default: '',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
product: {
type: Schema.ObjectId,
ref: 'Product'
},
price: {
type: Number,
default: 3000,
min: 0
},
});
这是req.body:
req.body = {
description: "xxxxxxxx",
payment: "xxxxxxxxx",
shipping: "xxxxxxx",
price: "17",
address: "xxxxxx"
};
谢谢!