首页 > 解决方案 > 在我的 Node Express 应用程序中,更新路由正在生成范围错误

问题描述

以下路线正在生成弃用消息和范围错误。我一直在阅读两者,但仍然不明白。

// Update
app.put('/blogs/:id', (req, res) => {
  Blog.findByIdAndUpdate(
    req.params.id,
    req.body.blog,
    function (err, updatedBlog) {
      if (err) {
        console.log(err);
        // res.redirect('/blogs');
      } else {
        res.redirect('/blogs/' + req.params.id, { blog: updatedBlog });
      }
    }
  );
});

这是完整的错误消息

express deprecated res.redirect(url, status): Use res.redirect(status, url) instead app.js:89:13
events.js:292
      throw er; // Unhandled 'error' event
      ^

RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: { blog: [Object] }
    at ServerResponse.writeHead (_http_server.js:248:11)
    at ServerResponse._implicitHeader (_http_server.js:239:8)
    at write_ (_http_outgoing.js:642:9)
    at ServerResponse.end (_http_outgoing.js:753:5)
    at ServerResponse.redirect (/home/jimmy/code/courses_tutorials/js_scratchpad/node_demos/blog_REST_demo/node_modules/express/lib/response.js:951:10)
    at /home/jimmy/code/courses_tutorials/js_scratchpad/node_demos/blog_REST_demo/app.js:89:13
    at /home/jimmy/code/courses_tutorials/js_scratchpad/node_demos/blog_REST_demo/node_modules/mongoose/lib/model.js:4837:16
    at /home/jimmy/code/courses_tutorials/js_scratchpad/node_demos/blog_REST_demo/node_modules/mongoose/lib/query.js:2869:28
    at processTicksAndRejections (internal/process/task_queues.js:79:11)
Emitted 'error' event on Function instance at:
    at /home/jimmy/code/courses_tutorials/js_scratchpad/node_demos/blog_REST_demo/node_modules/mongoose/lib/model.js:4839:13
    at /home/jimmy/code/courses_tutorials/js_scratchpad/node_demos/blog_REST_demo/node_modules/mongoose/lib/query.js:2869:28
    at processTicksAndRejections (internal/process/task_queues.js:79:11) {
  code: 'ERR_HTTP_INVALID_STATUS_CODE'
}
[nodemon] app crashed - waiting for file changes before starting...

谁能解释这个错误并指出我正确的方向?谢谢大家!

标签: node.jsexpressmongooseerror-handling

解决方案


错误来自传递的参数不正确。第一个应该是状态,第二个应该是 url。当前,您正在传递 url,status 应该在哪里以及某种对象到 url 参数


推荐阅读