gpt4 book ai didi

mysql - Connection.query 函数被跳过并且不在 if 语句中执行

转载 作者:行者123 更新时间:2023-11-29 15:35:27 26 4
gpt4 key购买 nike

我已经设置了几个快速端点来使用 Node 和角度构建考勤登记系统,一切正常,除了在“/punchin”端点中,我在 if 语句中使用了几个 connection.query 函数正在被跳过并且不执行

我尝试过使用promise,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函数应该被执行,但事实并非如此。

最佳答案

你的条件是如果这个查询的值是一个空数组并且零索引中没有对象,则执行条件。但当结果有值时,true 结果为 false,! 不运行它。所以结果一定是一个不符合条件的值。

if result.length == 0

console.log(result[0]) // undefined

并且在 javaScript 中未定义是正确的

console.log(!result[0]) // true

所以条件不适用,但如果结果有信息:

console.log(result[0]) // query result data

结果 main 中的数据和对象数组在条件中为 true,而不是为 false,因此不应执行 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());

关于mysql - Connection.query 函数被跳过并且不在 if 语句中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com