mysql查询即使在try语句中也会使我的程序崩溃

a2mppw5e  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(248)

它在找不到记录时出错 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*/}
3okqufwl

3okqufwl1#

我认为你应该加上适当的支票。try-catch基本上用于连接/查询执行相关的失败,而不是if数据未返回。所以只要添加检查结果[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*/}

相关问题