我已经设置了几个表达端点,使用node和angular建立了一个考勤注册系统,一切正常,除了在'/ 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函数,但不应执行。
答案 0 :(得分:0)
您有条件说,如果此查询的值是一个空数组,并且零索引中没有对象,请执行条件。但是,当结果具有值时,如果!
不运行,则结果为假。因此,结果必须是不符合条件的值。
如果result.length == 0
console.log(result[0]) // undefined
并且在javaScript中没有未定义为真
console.log(!result[0]) // true
因此该条件不适用,但是如果结果包含信息:
console.log(result[0]) // query result data
在结果main中具有对象的数据和数组在条件上为true,而不是false,如果不应该执行语句
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());