[英]Connection.query function is being skipped and not executed within if statement
我已經設置了幾個快速端點來使用節點和 angular 構建考勤注冊表系統,一切正常,除了在“/punchin”端點中,我使用了幾個 connection.query function 在 if 語句中被跳過並且沒有被執行
我嘗試過使用承諾 con.query(sqlQuery).then().catch(),但它不起作用
app.post('/punchin',(req,res)=>{
const checkIfIdExists='SELECT uid FROM registerTbl WHERE uid="'+req.body.inData+'"'
con.query(checkIfIdExists,(err,result)=>{
if(result[0]===undefined)
{
return console.log('The entered unique id does not exist in our database')
}
})
const checkIfStatIsUndefined='SELECT attendanceStatus FROM userAttendanceLog WHERE uid="'+req.body.inData+'" '
con.query(checkIfStatIsUndefined,(err,result)=>{
console.log(result)
console.log(checkIfStatIsUndefined)
if(!result[0])
{
console.log('line 68')
const selectLogDetailForNewUser='SELECT name,uid FROM registerTbl WHERE uid="'+req.body.inData+'"'
console.log('line 70' +selectLogDetailForNewUser)
con.query(selectLogDetailForNewUser,(err,result)=>{
console.log('line 80' + sel)
console.log(result+'line 81')
const updateStatusForNewUser='INSERT INTO userAttendanceLog (name,uid,attendanceStatus) VALUES ("'+result[0].name+'","'+req.body.inData+'","1")'
con.query(updateStatusForNewUser,(err,result)=>{
if(err)
{
return console.log("Error in Posting")
}
res.send('Status updated')
})
})
}
})
預期的結果應該是 if 語句中的 2 connection.query function 應該被執行,但事實並非如此。
你有條件說如果這個查詢的值是一個空數組並且在零索引中沒有 object,執行條件。 但是當結果有值時,真正的結果是假的!
不要運行它。 所以結果一定是不符合條件的值。
如果結果.長度 == 0
console.log(result[0]) // undefined
並且在 javaScript 中未定義為真
console.log(!result[0]) // true
所以條件不適用,但如果結果有信息:
console.log(result[0]) // query result data
在結果中具有 object 的數據和數組,主要條件為真,而不是假,不應執行 if 語句
console.log(!result[0]) // false
如果你運行它刪除!
標記或更改執行條件。
var mysql = require('mysql');
var con = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: 'yourPass',
database: 'test'
});
function f() {
con.connect(function (err) {
if (err) throw err;
console.log("Connected!");
const checkIfIdExists = 'select 1 + 1'
con.query(checkIfIdExists, (err, result) => {
console.log(1, result)
if (true) {
return console.log('The entered unique id does not exist in our database')
}
})
const checkIfStatIsUndefined = 'select 10 + 10 '
con.query(checkIfStatIsUndefined, (err, result) => {
console.log(10, result, result[0], !result[0])
if (result[0]) {
const selectLogDetailForNewUser = 'select 100 + 100'
con.query(selectLogDetailForNewUser, (err, result) => {
console.log(100, result, err)
console.log("baba" + sel);
const updateStatusForNewUser = 'select 1000 + 1000'
con.query(updateStatusForNewUser, (err, result) => {
console.log(1000, result)
if (err) {
return console.log("Error in Posting")
}
//res.send('Status updated')
})
})
}
})
});
}
console.log(f());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.