node.js - 在我的 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...
谁能解释这个错误并指出我正确的方向?谢谢大家!
解决方案
错误来自传递的参数不正确。第一个应该是状态,第二个应该是 url。当前,您正在传递 url,status 应该在哪里以及某种对象到 url 参数
推荐阅读
- bitbucket-pipelines - 在管道中获取部署 url
- python - 我想创建“加入”和“列表”命令
- karate - 有没有办法让空手道项目的所有功能文件中的所有标签都可用?
- python - 如何替换python中字符串中的第一项?
- visual-studio-code - tmLanguage 支持奇怪的多行字符串文字
- angular - 错误:您可能需要适当的加载程序来处理此文件类型。使用离子 5
- azure - 无法下载外部组织中的工件
- java - 无法使用 JDBC 连接到 MariaDB 上的数据库
- jsf - 删除方法后更新 p:dataTable 的方法?
- python - 为列表创建带有条目的 text_box - tkinter Python