React - 删除请求带有错误代码 404
React - delete request come with error code 404
我在尝试从 mySQL 数据库中删除驱动程序时遇到问题。
调用我的函数并传递映射的 id(它正在工作):
<button id="deleteRent" onClick={DeleteVehicles.bind(vehicle.id)}>Delete</button>
这是我的反应代码:
const DeleteVehicles = (CarId) => {
Axios.delete(`http://localhost:3001/vehicleDelete/${CarId}`)
.then((response) => {
if (response) {
console.log(response)
alert("Sikeres Törlés")
navigate("/admin");
}
else {
console.log("törlési hiba")
}
})
}
这是我的节点表达请求:
app.delete('/vehicleDelete/:CarId'), async (req, res) => {
db.query("DELETE FROM products WHERE id = ?", req.params.CarId,
(err, result) => {
console.log(err)
console.log(result)
if (result) {
res.send(result);
}
})
}
有什么想法吗?
你应该运行这个:
app.delete('/vehicleDelete/:CarId'), (req, res) => {
// make sure your are getting CarId that exists
// and then you delete it
db.query(`DELETE FROM products WHERE id = ${req.params.CarId}`,
(err, result) => {
console.log(err)
console.log(result)
if (result) {
res.send(result);
}
})
}
此外,您不需要添加 async
,因为您没有使用 await
进行查询。结果给你一个可能看起来像这样的对象:
{
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
现在,当您说您收到 404
状态代码时,这意味着您没有发出请求的路线。因此,http://localhost:3001/vehicleDelete/${CarId}
您需要在服务器上正确注册路由。
您应该使用 Promises
添加 catch 块,这是推荐的做法。
const DeleteVehicles = (CarId) => {
Axios.delete(`http://localhost:3001/vehicleDelete/${CarId}`)
.then((response) => {
if (response) {
console.log(response)
alert("Sikeres Törlés")
navigate("/admin");
}
else {
console.log("törlési hiba")
}
}).catch(console.log);
}
axios
应该小写:
axios.delete(`http://localhost:3001/vehicleDelete/${CarId}`)
注意快递代码上的右括号:
app.delete('/vehicleDelete/:CarId', async (req, res) => {
db.query("DELETE FROM products WHERE id = ?", req.params.CarId, (err, result) => {
if (err) return res.status(500).send('Error')
res.status(200).send(result);
})
})
我在尝试从 mySQL 数据库中删除驱动程序时遇到问题。 调用我的函数并传递映射的 id(它正在工作):
<button id="deleteRent" onClick={DeleteVehicles.bind(vehicle.id)}>Delete</button>
这是我的反应代码:
const DeleteVehicles = (CarId) => {
Axios.delete(`http://localhost:3001/vehicleDelete/${CarId}`)
.then((response) => {
if (response) {
console.log(response)
alert("Sikeres Törlés")
navigate("/admin");
}
else {
console.log("törlési hiba")
}
})
}
这是我的节点表达请求:
app.delete('/vehicleDelete/:CarId'), async (req, res) => {
db.query("DELETE FROM products WHERE id = ?", req.params.CarId,
(err, result) => {
console.log(err)
console.log(result)
if (result) {
res.send(result);
}
})
}
有什么想法吗?
你应该运行这个:
app.delete('/vehicleDelete/:CarId'), (req, res) => {
// make sure your are getting CarId that exists
// and then you delete it
db.query(`DELETE FROM products WHERE id = ${req.params.CarId}`,
(err, result) => {
console.log(err)
console.log(result)
if (result) {
res.send(result);
}
})
}
此外,您不需要添加 async
,因为您没有使用 await
进行查询。结果给你一个可能看起来像这样的对象:
{
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
现在,当您说您收到 404
状态代码时,这意味着您没有发出请求的路线。因此,http://localhost:3001/vehicleDelete/${CarId}
您需要在服务器上正确注册路由。
您应该使用 Promises
添加 catch 块,这是推荐的做法。
const DeleteVehicles = (CarId) => {
Axios.delete(`http://localhost:3001/vehicleDelete/${CarId}`)
.then((response) => {
if (response) {
console.log(response)
alert("Sikeres Törlés")
navigate("/admin");
}
else {
console.log("törlési hiba")
}
}).catch(console.log);
}
axios
应该小写:
axios.delete(`http://localhost:3001/vehicleDelete/${CarId}`)
注意快递代码上的右括号:
app.delete('/vehicleDelete/:CarId', async (req, res) => {
db.query("DELETE FROM products WHERE id = ?", req.params.CarId, (err, result) => {
if (err) return res.status(500).send('Error')
res.status(200).send(result);
})
})