Javascript Express JS-从mysql中删除条目

Javascript Express JS-从mysql中删除条目,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我正在使用Express.js构建一个小应用程序。我已经成功地实现了允许我向数据库添加新条目的功能 当用户单击按钮时,我正在尝试从mysql数据库中删除一个条目。这是执行的代码: client.query('DELETE FROM humans WHERE id= ?', [req.params.id], function(err, result) { if (err) { throw err; } res.redirec

我正在使用Express.js构建一个小应用程序。我已经成功地实现了允许我向数据库添加新条目的功能

当用户单击按钮时,我正在尝试从mysql数据库中删除一个条目。这是执行的代码:

client.query('DELETE FROM humans WHERE id= ?', [req.params.id], function(err, result) {
        if (err) {
            throw err;
        }

        res.redirect('/humans');

我知道代码执行正确,因为我被重定向到正确的页面。尽管如此,我的条目仍在数据库中。

从对您的问题的评论推断,我猜您是使用POST请求从表单发送id。在req.body中查找post参数(如果您使用的是express.bodyParser中间件)。因此:


如果您发送GET请求,参数将在req.query中找到。

明显的问题是
id
是否通过设置/正确?@wiredparie-yes;我有一个隐藏的输入字段,它的id值和name属性设置为id,这样当我发布表单时,它就会被传递;当我检查页面时,它是可见的,并且值是正确的。根据您接受的内容,我的问题的答案似乎是“某种程度上”。)它现在工作得很好!根据您刚才的解释,我知道每当我发送POST请求时,我就不能再使用req.params访问参数。我必须使用req.body。?不,您永远不能通过req.params访问表单数据。表单数据通常作为url编码的字符串发送,在正文(对于POST)或查询字符串(对于GET)中。考虑<代码> /Fo/Bar < /代码> VS代码> /fo.value = bar < /代码>。第一个请求可以通过express中类似于
/foo/:value
的路由处理,参数可以在
req.params.value
中找到。然而,第二个请求发送查询字符串中的值,因此该值可以在
req.query.value
中找到(当然,同样的推理也适用于POSTs和req.body,但由于body不是url的一部分,因此很难用这种简短的格式进行演示)我现在理解了。谢谢你的解释!
client.query('DELETE FROM humans WHERE id= ?', [req.body.id], function(err, result) {
  if (err) {
      throw err;
  }

  res.redirect('/humans');
});