使用React.js和Express删除发布到MySQL的帖子

问题描述 投票:1回答:1

我在使用React和MySQL删除帖子时遇到了麻烦。我没有收到任何错误或警告,但帖子没有被删除,当我在console.log时,受影响的行返回0。


deleteNote = id => {
    // <-- declare id parameter
    axios
      .delete(`http://localhost:5000/delete/${id}`) // <-- remove ;
      .then(() => {
        // Issue GET request after item deleted to get updated list
        // that excludes note of id
        this.getAllNotes()
      })
      .then(res => {
        const allNotes = res.data;
        this.setState({ allNotes });
      })
      .catch(err => {
        console.error(err);
      });
  };

<button
type="button"
className="btn-xs btn-info float-right"
onClick={() => this.props.deleteNote(note.ID)}>
<span>
<i className="fas fa-trash-alt" />
</span>{" "}
Delete
</button>


我的删除方法在快速正确的控制台记录正确的帖子ID

app.delete("/delete/:id", (req, res) => {
  let { ID } = req.params.id;
  let sql = "DELETE FROM notes WHERE ID= ?";
  console.log("id: ", req.params.id);

  // delete a row with id = req.params.id
  connection.query(sql, [ID], (error, results, fields) => {
    if (error) return console.error(error.message);

    console.log("Deleted Row(s):", results.affectedRows);
  });
});
mysql node.js reactjs express
1个回答
0
投票

我改变了使用参数的方式后,它工作了。有人知道为什么传递ID作为第二个参数不起作用?

app.delete("/delete/:id", (req, res) => {
  let { ID } = req.params.id;
  let sql = `DELETE FROM notes WHERE ID = ${req.params.id}`;
  console.log("id: ", req.params.id);

  // delete a row with id = req.params.id
  connection.query(sql, (error, results, fields) => {
    if (error) return console.error(error.message);
    res.status(200).send(results);
    console.log("Deleted Row(s):", results.affectedRows);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.