You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js+Express+MongoDB修改笔记时出现Cannot PUT错误求助

解决Express笔记应用的PUT请求错误

问题根源1:路由路径拼写不匹配

你的表单提交路径是/notes/edit-note/{{note._id}},但PUT路由里写的是/notes/edite-note/:id——这里edite是拼写错误,正确应为edit。

修正后的PUT路由代码:

router.put('/notes/edit-note/:id', async (req, res) => {
  const {title, description} = req.body;
  await Note.findByIdAndUpdate(req.params.id, {title, description});
  res.redirect('/notes')
})

问题根源2:未配置method-override中间件(必查)

HTML表单本身不支持PUT请求,你通过_method=PUT参数模拟PUT请求,必须在Express中配置method-override中间件才能识别该参数:

  1. 安装依赖:
npm install method-override
  1. 在Express入口文件(如app.js)中添加配置:
const methodOverride = require('method-override');
// 配置中间件,识别URL中的_method参数
app.use(methodOverride('_method'));

完成以上操作后重启服务,修改笔记功能即可正常工作。

内容的提问来源于stack exchange,提问作者sDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:20:44