首页 > 解决方案 > 为什么 express (node.js) 需要参数来删除请求?

问题描述

我制作了 todo react 应用程序,其中用户单击删除按钮将删除请求获取到我的 node.js 服务器。

const deleteTodo = (id) => {
  const q = `DELETE FROM todos WHERE id=${id}`;
  connection.query(q, (err, results) => {
    if (err) throw err;
    console.log('delete', results)
  })
}

但是,当我简单地使用下面的路由器选项时,

app.delete('/', function (req, res) {
  (some function) 
})

应用程序不会像这样删除。

另一方面,通过简单地制作它

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

它将再次开始运作。

为什么会这样?

标签: mysqlnode.jsreactjsexpress

解决方案


我认为您的问题缺少一些信息。
特别是,您如何调用deleteTodo以及实际错误是什么。

如果我要猜测,当/todos/:id指定时,可以使用req.params.id.
但是,当它是/,时req.params.id是未定义的。未定义时req.params.id,查询无效。

有关详细信息,请参阅express 文档


推荐阅读