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语句结果是不是有值?

如何检查 NodeJS 中的 JSON 是不是为空?

如何检查MongoDB本机nodejs驱动程序中是不是存在集合?

NodeJS MySQL如何在查询函数之外获取结果

MySQL:如何检查是不是列出了用户

如何检查MySQL中是不是存在一行? (即检查电子邮件是不是存在于 MySQL 中)