我有一個網路公式,我從中提取資料。唯一欄位應該是電子郵件,但是如果我重復電子郵件,我的公式會中斷并拋出錯誤,我不知道如何阻止我的公式中斷,我只想要一個 error.push("reenter your email"),沒有使用 npm start 再次連接到資料庫。我正在尋找驗證或 smth,我是 node.js 的初學者并使用 js
connection.query(
"SELECT * FROM `employees` WHERE `email`= ?",
[employee.email],
function (err, row) {
if (err) throw err;
else {
if (row && row.length) {
error.push("Email already exists!"); //this does nothing
return console.log("Email is existing already!");
}
}
}
);
if(error.length === 0){
// insert data in the table
}
else {
res.status(400).send(error);
console.log("Error");
}
我想要 error.push("電子郵件已經存在!"); 修改我的錯誤陣列,使其不會進入第一個 if(error.length === 0)
uj5u.com熱心網友回復:
connection.query是一個異步函式。所以error.push發生后,你的if。
可能的解決方案 -
- 將進一步的代碼移到回呼函式中
- 創建一個 Promise 并在函式中決議它,也就是使用
async/await系統。示例函式:
const executeQuery = (con, query, params = null) => {
return new Promise((resolve, reject) => {
con.query(query, params, (err, res) => {
if (err) {
reject(err);
return
}
resolve(res);
});
})
};
你可以運行這個,你可以說await executeQuery(con,query,param)并從那里繼續。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344765.html
標籤:javascript sql 节点.js
上一篇:在SQLServer中獲取不帶句號或連字符的DDMMYYYY格式
下一篇:SQL查詢過濾問題
