我在使用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);
});
});
答案 0 :(得分: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);
});
});
答案 1 :(得分:0)
您必须在?。的末尾添加。 ?,ID