问题描述
该代码应执行并比较ID上的标志。它引发错误TypeError: Cannot read property 'length' of undefined
,当我在其中放置console.log以查看结果时,即使它应该从MySQL查询返回,它也返回未定义的状态。 MysqL已正确设置,并且该表存在。
这是因为Javascript是异步的吗?我该如何解决?
con.query(`SELECT * FROM pedodb WHERE ID = ?`,[ID],function (err,result,fields) {
if (result.length > "0") {
if (result[0].flag == "P") {
console.log("This isn't logged")
}
}
});
解决方法
我能解释您的观察的唯一方法是结果集为空,或者在查询期间发生错误。要检查这一点,您可以使用:
con.query("SELECT * FROM pedodb WHERE ID = ?",[ID],function (err,result,fields) {
if (err || !result || result.length == 0) {
// handle error or empty result set here
console.log("Something went wrong");
}
else if (result[0].flag == "P") {
console.log("This isn't logged")
}
}
);