mysql - 为什么 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)
})
它将再次开始运作。
为什么会这样?
解决方案
我认为您的问题缺少一些信息。
特别是,您如何调用deleteTodo
以及实际错误是什么。
如果我要猜测,当/todos/:id
指定时,可以使用req.params.id
.
但是,当它是/
,时req.params.id
是未定义的。未定义时req.params.id
,查询无效。
有关详细信息,请参阅express 文档。
推荐阅读
- angular - Angular 组件或指令匹配“jhi-product-list”元素超出了当前 Angular 模块的范围
- github - GitHub 对来自 URL 的问题的预填充评论
- terraform - Terraform 数字变量验证不抛出错误
- reactjs - 在嵌套路由之间来回切换时,父组件的属性值会重置
- python - 如何使用硒向下滚动
- java - 由于 Java 11 环境中缺少 fontconfig,Apache POI 在 createsheet 中失败
- python - 通过 Python 获取 docker stats 的问题
- c# - 我的 UserControl 的 TextBlock 绑定甚至不会更新一次
- javascript - 如果满足条件,如何绘制线条并保存所有线条
- javascript - 我需要打印出 4 个最大值并在 JavaScript 中求和