我是Express的初學者。我在路由器/控制器中有以下代碼來更新模型。一方面,我不想修改「create_date」參數的日期,而另一方面,這段代碼返回錯誤。更新/放入錯誤保存在Express和Mongoose中
updateFood = function(req, res){
Food.findById(req.params.id, function(err, food){
food.food_name = req.body.food_name;
food.description = req.body.description;
food.image = req.body.image;
food.create_date = Date.now();
food.category = req.body.category;
Food.save(function(err){
if (!err){
console.log("updated!");
} else {
console.log(err);
}
});
res.send(food);
});
};
這裏是我的架構:
var food = new Schema({
food_name: {type: String, unique: true},
description: String,
image: String,
create_date: {type: Date, default: Date.now()},
category: {
type: String,
cats: ['Meat', 'Fish', 'Vegetables']
}
});
module.exports = mongoose.model('Food', food);
當我嘗試更新與郵差食品與PUT。控制檯返回以下響應:
Food.save(function(err){
^
TypeError: Object function model(doc, fields, skipId) {
if (!(this instanceof model))
return new model(doc, fields, skipId);
Model.call(this, doc, fields, skipId);
} has no method 'save'
我該怎麼辦?任何人都知道我的錯誤在哪裏?謝謝。
找到findById是否正在安裝'food'。 – Foreever
@但是,它正在工作,它通過id響應了我選擇的'食物'的json。 – JesusMurF
您嘗試僅更新例如一個字段。帶有一些測試值的描述。檢查這是否工作。 – Foreever