【问题标题】:Node.JS MySql Waiting for expected result in LoopNode.JS MySql 在循环中等待预期结果
【发布时间】: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' } ]

标签: mysql node.js discord.js


【解决方案1】:
if(result? result.day : "0:44" == "0:45")

如果没有结果,试试这个,字符串将是 44,然后转到 else

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    相关资源
    最近更新 更多