gpt4 book ai didi

mysql - node.js/express/mysql/serialport/socket.io

转载 作者:行者123 更新时间:2023-11-29 13:11:46 25 4
gpt4 key购买 nike

我正在使用这个问题标题中提到的所有模块来开发这个项目。当我发送短信时,计算机可以通过串口读取它,它首先要做的就是查看该号码是否在数据库中注册。这是代码:

function consultarNumero(head, body, numero){
connection.query('SELECT * FROM devices WHERE nro_telefono = "'+numero+'"', function(err, result){
if(err){
console.log(err);
}else{
if(result[0]['id']!=null){
var idEmbarcacion = result[0]['id'];
//readingData.dividirPartes(head, body, idEmbarcacion); <- some other function
}else{
return false;
}
}
});
}

此代码有效,因为我用于测试的电话号码已在数据库中注册,但是如果我从另一部手机发送消息,则会出现错误“无法读取未定义的属性‘id’” .

很明显“if(result[0]['id']!=null)”不是正确的方法。我尝试过“if(result.length)!=​​0”,但结果数组的长度将始终大于 0,即使该数字未注册,因为如果找不到任何内容,它将返回 '未定义'。

当然,我知道如果hpone号码没有注册,那么'id'将不存在。问题是,如果号码未注册,我无法弄清楚如何编辑此查询以添加不同的行为,因为当系统实现时,可以从随机电话号码接收消息。

最佳答案

如果没有结果时 result 确实是 undefined,那么 result[0] 也将是 undefined >。下面的示例不应通过 if (result) 的第一次求值,然后它应该安全地到达 else。

if (result && result[0] && result[0]['id']) {}

关于mysql - node.js/express/mysql/serialport/socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com