You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS中如何判断MySQL查询返回的result结果集是否为空或未定义

Node.js操作MySQL查询结果判断问题解决

报错原因

  • 异步执行&作用域问题:node-mysql的con.query是异步接口,result是仅在回调函数内部可用的参数,你将判断逻辑写在回调函数外部,代码执行时会先跑外部的if判断,此时回调还没触发,result根本没有定义,自然会抛出未定义错误。
  • 判断逻辑语法错误:!result[5] == undefined存在运算符优先级问题,会先执行!result[5]再和undefined比较,无法得到你想要的判断效果。

正确实现代码

con.query("SELECT tag, message FROM list1", function (err, result) {
  if (err) {
    console.log('Error: ' + err)
    return // 出错直接终止后续逻辑
  }
  // 先判断结果集存在、长度足够覆盖下标5,再判定第5项不为空
  if (result && result.length > 5 && result[5] != undefined) {
    console.log('Result 5 exists')
    // 你的其他业务逻辑写在这里
  }
});

补充判断规则

如果需要判断整个查询结果为空,直接判断result.length === 0即可,正常查询无匹配数据时result会返回空数组。

内容的提问来源于stack exchange,提问作者Martín Rubina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:27:04