gpt4 book ai didi

mysql - NodeJS mysql promise 返回未定义

转载 作者:行者123 更新时间:2023-11-29 07:25:28 25 4
gpt4 key购买 nike

我正在尝试为从 MySQL 表输出整数的 discord 机器人执行命令。

我尝试使用 async/await、promises 和回调来执行此操作,但结果始终相同。在这里,我再次尝试 promise ,因为在过去它以某种方式起作用。现在不会了。

这是返回 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’”的错误。

最佳答案

您的查询似乎没有返回任何结果,而是未定义的 promise 。

我建议您将查询放入变量并使用 console.log 获取生成的查询,以便您可以检查最终查询。

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

尝试在您的 mysql 编辑器中选择标准输出查询。

关于mysql - NodeJS mysql promise 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com