即使在try语句中,MySQL Query也会崩溃我的程序

时间:2018-01-03 11:38:06

标签: mysql node.js discord.js

无法找到记录时出错Cannot read property 'id' of undefined 如何防止它崩溃并处理“未定义”?

let blacklisted = false;
    let conStr = "SELECT * FROM `blacklist` WHERE `id` = '"+message.author.id+"'"; 
    con.query(conStr, function(error, result, field) {
        console.log(result[0].id);
        if(result[0].id){
            console.log("Van")
            blacklisted = false;
        }
    });

if (message.author.id !== "397487086522990602" && blacklisted){/*Actual Code*/}

1 个答案:

答案 0 :(得分:0)

我相信你应该加上适当的检查。 try catch基本上是针对连接/查询执行相关的失败而不是因为没有返回数据。 所以只需添加检查结果[0]是否存在。

因此,下面的代码应该符合您的目的:

let blacklisted = false;
    let conStr = "SELECT * FROM `blacklist` WHERE `id` = '"+message.author.id+"'"; 
    con.query(conStr, function(error, result, field) {
        if(result[0] && result[0].id){ // add check for result[0]
            console.log("Van")
            blacklisted = false;
        }
    });

if (message.author.id !== "397487086522990602" && blacklisted){/*Actual Code*/}