NodeJS - 如何检查 MySQL 结果是不是未定义/为空?
Posted
技术标签:
【中文标题】NodeJS - 如何检查 MySQL 结果是不是未定义/为空?【英文标题】:NodeJS - How can I check if a MySQL result is undefined/empty?NodeJS - 如何检查 MySQL 结果是否未定义/为空? 【发布时间】:2021-11-10 22:52:35 【问题描述】:有谁知道如何检查 NodeJS mysql 结果是否为空/空?我要做的是(非常简洁地解释)检查结果 5 是否为空,如果不是,则执行一个操作(在这种情况下为 console.log)。
这是没有所有细节的代码,为了简化事情,但是在执行它时我发现“结果”没有定义
con.query("SELECT tag, message FROM list1", function (err, result)
if (err)
console.log('Error: ' + err)
);
if(!result[5] == undefined)
console.log('Result 5 exists')
【问题讨论】:
因为result[5]
在回调范围之外
呃,是的,我很笨。非常感谢!我之前没有注意到,因为真正的代码是如此之大,以至于实现起来有点复杂^^
【参考方案1】:
我强烈推荐你使用这个模式。
con.query('SELECT tag, message FROM list1', [info] function(err, row, fields)
if(err)
return console.log('Error1');
else if (!row.length)
return console.log('Error2');
else if (!row[0].something)
return console.log('Error3');
console.log('Works');
)
它使用"falsy" 检查行[0]。如果值为 undefined、null 或空字符串,则返回 false 的东西。它还修复了注入攻击向量。
【讨论】:
【参考方案2】:在底部的if语句中,使用typeof result[5] !== 'undefined'
。
您当前的方法检查 result[5] 的值是否等于 undefined,但如果 result[5] 不存在,则会崩溃。如果变量不存在,检查类型将返回“未定义”。
编辑代码:
con.query("SELECT tag, message FROM list1", function (err, result)
if (err)
console.log('Error: ' + err);
);
if(typeof result[5] !== 'undefined')
console.log('Result 5 exists');
【讨论】:
以上是关于NodeJS - 如何检查 MySQL 结果是不是未定义/为空?的主要内容,如果未能解决你的问题,请参考以下文章
如何在php中检查mysql select语句结果是不是有值?