【问题标题】:Updating in Mongoose thru Postman通过 Postman 在 Mongoose 中更新
【发布时间】:2017-10-24 17:35:30
【问题描述】:

在我的猫鼬控制器中,我有类似的东西:

exports.update_a_task = function(req, res) {
  Task.findOneAndUpdate({_id: req.params.taskId}, req.body, {new: true}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};

我在 Postman 的 PUT 命令中输入:

url/doSomething/taskId/name //or ,name

但它只会提示 CastError。如果我想使用 PUT 命令更新文档,URL 应该是什么样子?

【问题讨论】:

  • 你的 req.body 包含什么?
  • body中只需要name,其他都是默认的。
  • 您也可以在查询参数中指定名称
  • 如果您不想将名称放入查询参数中,请从我的答案中删除 &name=name
  • url 应该像这样url/doSomething/taskId,这样你就可以在postman 中传入你想要用来更新指定任务的数据。

标签: node.js mongoose postman


【解决方案1】:

如果 taskId 和 name 是查询参数,则 url 变为

url/doSomething/?taskId=123&name=name

【讨论】:

    【解决方案2】:

    对于这个网址:url/doSomething/taskId,你可以这样做:

    {
      name: "the_name_you_want"
    }
    

    邮递员内部。

    【讨论】:

      【解决方案3】:

      要在猫鼬中获得它,您需要拥有这样的网址 url/doSomething/:taskId/:name

      然后在邮递员中,您可以向 url/doSomething/taskId/name 现在您可以使用 req.params.taskId

      如果您想以 /url/doSomething?taskId=&name= 的形式提供数据,您需要使用 req.query.taskId

      【讨论】:

        猜你喜欢
        • 2014-02-09
        • 2015-10-05
        • 2013-03-27
        • 2018-06-05
        • 1970-01-01
        • 1970-01-01
        • 2014-12-28
        • 2020-05-13
        • 2023-01-24
        相关资源
        最近更新 更多