繁体   English   中英

PUT请求在Restify API,NodeJS,MongoDB中

[英]PUT request in Restify API, NodeJS, MongoDB

我正在尝试为我的API编写PUT请求。 我正在使用restify来构建API。 我一直在收到错误,请你帮忙吗?

    //PUT (Update) Items

    app.put('/items/:item_id', function(req, res){

    var query = Item.where({_id: req.params.item_id});
    query.findById(req.params.id, function (err, items) {
    item.name = req.body.name;
    item.description = req.body.description;
    item.url = req.body.url;

    req.item.save(function (err) {
        if (!err) {
            console.log("updated");
        } else {
            console.log(err);
        }
        res.send(204, item);
    });
});

我尝试使用POSTMAN客户端测试它,我收到此错误

     {
         "code": "InternalError",
         "message": "Object #<Query> has no method 'findById'"
     }

谢谢。

findById方法在内部映射到find,参数为{_id:}

你可以使用:

Item.find({_id: req.params.item_id}, function (err, items) {

});

要么

Item.findById(req.params.item_id, function (err, items) {

});

两者都是一回事。 原因是因为你写的时候

 var query = Item.where({_id: req.params.item_id});

返回一个查询对象,在该对象上无法调用findById方法。 它只能在Item模型上调用。

如果您尝试组合查询,我建议在过滤级别组合它们或使用聚合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM