nodejs mysql promise返回未定义

qcuzuvrc  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(373)

我正在尝试为discord bot执行命令,该bot从mysql表输出整数。
我试着用async/await、promissions和callbacks来实现这一点,但结果总是一样的。在这里,我再次尝试承诺,因为在过去,它不知何故发挥了作用。现在不会了。
下面是返回promise的函数:

exports.checkAccess = (user) => {
    return new Promise((resolve,reject) => {
        sql.condb.query("SELECT `accessLevel` FROM `users` WHERE `DiscordID` = '" + user + "' LIMIT 1", function(err,rows){
            if(err) reject(err);
            else resolve(rows);
        })
    });
}

下面是将结果分配给accesslevel变量的代码:

let accessLevel = -1;
cmds.checkAccess(message.author.id).then(rows=>{
        accessLevel = rows[0].accessLevel;
    }).catch((err)=>{
        console.log(err);
});

catch函数捕获表示“typeerror:无法读取未定义的属性‘accesslevel’”的错误。

ttygqcqt

ttygqcqt1#

您的查询似乎没有返回任何结果,而不是未定义的承诺。
我建议您将查询放入variable中,并使用console.log生成查询,以便检查最终的查询。

let query = "SELECT `accessLevel` FROM `users` WHERE `DiscordID` = '" + user + "' LIMIT 1";
console.log(query);

尝试在mysql编辑器中选择stdout查询。

相关问题