檢查名稱是否已存在后,程式繼續運行到下一個查詢并仍然插入資料(也顯示錯誤,因為它發送了多個回應)。如果 (results.rowCount > 0) 運行后如何讓它停止?
const addCategory = (req, res) => {
let { name } = req.body
//check if name exist
pool.query(queries.checkNameExists, [name], (error, results) => {
if (error) throw error
if (results.rowCount > 0) {
return res.status(409).send(`Category ${name} already exists!`)
}
})
//insert new category
pool.query(queries.addCategory, [name], (error, results) => {
if (error) throw error
res.status(201).send("Category created succesfully!")
})
}
uj5u.com熱心網友回復:
您無法從回呼回傳任何內容的第一件事是您的程式正在同時執行兩個查詢,并且由于單個請求將發送多個回應,這里我有您的問題的解決方案
const addCategory = async(req, res) => {
let { name } = req.body
//check if name exist
const exist = await pool.query(queries.checkNameExists, [name]);
if(exist){
return res.status(409).send(`Category ${name} already exists!`)
}
//insert new category
await pool.query(queries.addCategory, [name]);
return res.status(201).send("Category created succesfully!")
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/395853.html
標籤:javascript 节点.js 表达
