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

Express.js中PUT与DELETE方法失效,请求返回404错误求助

Express待办应用PUT/DELETE请求404问题解决

问题描述

使用Node.js、Express.js和sqlite3开发简易待办事项应用时,GET与POST方法可正常运行,但PUT和DELETE方法无法被访问,请求返回404状态码及Cannot DELETE/PUT /todos提示。所有请求通过VSCode的Thunder工具发送,未使用HTML表单。

问题原因

后端路由定义的是URL路径参数格式:

app.put('/todos/:id', function(req, res) { ... })
app.delete('/todos/:id', function(req, res) { ... })

但实际发送的请求使用的是查询参数格式:

  • DELETE请求:http://localhost:3000/todos/?id=2
  • PUT请求:http://localhost:3000/todos/?id=2

Express会将/todos/?id=2识别为路径/todos的请求,而后端没有为/todos路径定义PUT/DELETE方法的路由,因此返回404。

解决方案

修改请求URL,将id直接嵌入路径中,匹配后端路由的路径参数格式:

  • 正确的DELETE请求URL:http://localhost:3000/todos/2
  • 正确的PUT请求URL:http://localhost:3000/todos/2

验证效果

修改请求后,后端代码中console.log(id)会打印出对应的id值(如2),数据库中的待办项会被正确更新或删除,同时返回成功响应:

  • PUT成功响应示例:{ "message": "Todo marked as completed."}
  • DELETE成功响应示例:{ "message": "Todo successfully deleted."}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:09:24