Node.JS MySql 在循环中等待预期结果
Posted
技术标签:
【中文标题】Node.JS MySql 在循环中等待预期结果【英文标题】:Node.JS MySql Waiting for expected result in Loop 【发布时间】:2020-10-21 21:28:51 【问题描述】:我正在尝试使用 mysql 在 Node.js 中为 Discordbot 创建一个循环,该循环等待 mysql 的结果与我想要的匹配,但我得到的只是这个错误: 抛出错误; // 重新抛出非 MySQL 错误 类型错误:无法读取未定义的属性“天”
MySql 连接和其他一切正常。但是当他没有找到结果时,我得到了这个错误,我的机器人崩溃了。
我的代码:
var requestloop = setInterval(function()
var con = mysql.createConnection(
host: process.env.IP,
user: process.env.US,
password: process.env.PW,
database: "XYZ"
);
con.connect(function(err)
if (err) throw err;
con.query("SELECT name,day FROM team WHERE day='0:45'", function (err, result)
if (err) throw err;
//Sending Congrats
if (result[0].day == "0:45")
let Worktime = new MessageEmbed()
.setTitle(result[0].name + `, Congratulations, you've finished work for today`)
.setColor("GREEN");
client.channels.cache.get('702139096683905054').send(Worktime);
con.end();
else
return con.end();
);
);
, 60000); //1 Minute
【问题讨论】:
你能 console.log(result) 吗? @Cursed 没有我可以记录的结果,这就是问题 xD。我希望代码忽略错误并返回。如果现在有结果,则在 1 分钟后重试。 if(result? result[0].day : "0:44" == "0:45") 试试这个> 我试过了,但不幸的是我仍然得到未定义的错误'day' 好的,现在我得到了结果 => [ RowDataPacket day: '0:47' ] 【参考方案1】:if(result? result.day : "0:44" == "0:45")
如果没有结果,试试这个,字符串将是 44,然后转到 else
【讨论】:
以上是关于Node.JS MySql 在循环中等待预期结果的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 node.js MySQL 从 MySql DB 获取结果并将它们发送回 API.ai - DialogFlow