我在嘗試從 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);
}
})
}
任何想法?
uj5u.com熱心網友回復:
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);
})
})
uj5u.com熱心網友回復:
你應該運行這個:
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}您需要在服務器上正確注冊路由。
您應該使用 來添加 catch 塊Promises,這是推薦的做法。
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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/439235.html
上一篇:好的,關于document.save()回呼引數的mongooseAPI在哪里?
下一篇:將html選擇系結到長C#陣列
