Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Express和Mongoose中保存更新/放置错误_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 在Express和Mongoose中保存更新/放置错误

Javascript 在Express和Mongoose中保存更新/放置错误,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我是快车初学者。我的路由器/控制器中有以下代码用于更新模型。一方面我不想修改“create_date”参数的日期,另一方面这段代码返回了一个错误 updateFood = function(req, res){ Food.findById(req.params.id, function(err, food){ food.food_name = req.body.food_name; food.description = req.body.descripti

我是快车初学者。我的路由器/控制器中有以下代码用于更新模型。一方面我不想修改“create_date”参数的日期,另一方面这段代码返回了一个错误

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是否起作用。@Forever是的,它起作用,它会用我选择的id“食物”响应json。您尝试只更新一个字段,例如,用一些测试值的描述。检查此操作是否有效。是否应该保存实例?所以应该是food.save()不是food.save()是的,错误是关于food.save(…)而不是food.save(…)谢谢:)但是我能为不修改“创建日期”做些什么呢?是的,错误是关于food.save(…)而不是food.save(…)谢谢:)但是我能为不修改“创建日期”做些什么呢?