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

Express API DELETE请求报错:Cannot DELETE /api/write/[id] 求助

问题分析与解决方案

核心问题:路由路径不匹配

你在Postman中发起的请求是DELETE /api/write/Avv8RZNxm,但代码里定义的DELETE处理路由是/api/channels/:id,两者路径完全不匹配,导致Express找不到对应的处理逻辑,返回Cannot DELETE错误。

具体解决方法

方法1:修正请求路径(无需修改代码)

在Postman中调整请求地址为DELETE /api/channels/Avv8RZNxm,确保和代码里的路由定义一致,即可正常触发删除逻辑。

方法2:修改路由定义(统一API前缀)

如果希望DELETE请求也沿用/api/write的前缀,直接修改代码中的DELETE路由:

app.delete("/api/write/:id", (req, res) => {
  const { id } = req.params;
  // 修正变量名避免和数组名重复,提升可读性
  const deleted = channels.find(channel => channel.id === id); 
  if (deleted) {
    channels = channels.filter(channel => channel.id !== id);
    res.status(200).json(deleted);
  } else {
    res.status(404).json({ message: "Channel you are looking for does not exist" });
  }
});

修改后即可用DELETE /api/write/Avv8RZNxm发起请求。

额外优化建议

  • POST请求创建资源成功时,标准状态码应为201 Created,建议把res.status(200).json({ response });改为res.status(201).json({ response });
  • 避免变量名冲突:find((channels) => ...)中的参数名和数组名重复,改成channel更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:07:14