Mysql的请求返回undefined
所以我编码节点JS的程序,我使用的MySQL。
我将请求发送到我的数据库,而应返回"Null"
但每次我得到"undefined"
,我不明白为什么。我看到堆栈溢出一些答案,但我不理解他们。
这里是我的功能:
async function checkKey(key) {
var activated = "";
var sqlcheck = "SELECT activated from authentification where discord_key = ?";
console.log("in function");
await DB.query(sqlcheck, [key], function (err, result) {
if (err) throw (err);
console.log("test");
console.log(result[0].customerID);
activated = result[0].customerID;
});
if (activated == "Null") {
return ("NULL");
} else {
return ("used");
}
}
console.log(result[0].customerID);
返回"undefined"
我把它在这一刻另一个功能:
if (checkKey(key) == "NULL") {
try {
是否有可能等待功能"checkkey"
继续之前完成?
这是我的日志:
logged in as ${client.user.tag}!
in function
${message.author.tag} - inputted an used key. key : ${key}
test
undefined
它应该说:
logged in as
in function
test
undefined
${message.author.tag} - inputted an used key. key : ${key}
主要功能继续而不检查,如果函数结束运行。
非常感谢您的帮助!
回答如下:
if (activated == "Null")
NULL
是不是一个字符串,它是SQL语言的一个特殊值,表示该值是UKNOWN,在不确定等字样。
当你的数据库驱动程序从数据库中检索NULL
值,它把它转换成任何对应于您正在使用的计算机语言,这在javascript将是一个NULL
变量undefined
概念。
你可以简单地改写这个条件的布尔检查:
if (!activated)
这将赶上情况activated
是一个空字符串,不定值,一个假布尔值,而数字0
。
如果你想允许0
,则:
if (activated !== 0)
Mysql的请求返回undefined
所以我编码节点JS的程序,我使用的MySQL。
我将请求发送到我的数据库,而应返回"Null"
但每次我得到"undefined"
,我不明白为什么。我看到堆栈溢出一些答案,但我不理解他们。
这里是我的功能:
async function checkKey(key) {
var activated = "";
var sqlcheck = "SELECT activated from authentification where discord_key = ?";
console.log("in function");
await DB.query(sqlcheck, [key], function (err, result) {
if (err) throw (err);
console.log("test");
console.log(result[0].customerID);
activated = result[0].customerID;
});
if (activated == "Null") {
return ("NULL");
} else {
return ("used");
}
}
console.log(result[0].customerID);
返回"undefined"
我把它在这一刻另一个功能:
if (checkKey(key) == "NULL") {
try {
是否有可能等待功能"checkkey"
继续之前完成?
这是我的日志:
logged in as ${client.user.tag}!
in function
${message.author.tag} - inputted an used key. key : ${key}
test
undefined
它应该说:
logged in as
in function
test
undefined
${message.author.tag} - inputted an used key. key : ${key}
主要功能继续而不检查,如果函数结束运行。
非常感谢您的帮助!
回答如下:
if (activated == "Null")
NULL
是不是一个字符串,它是SQL语言的一个特殊值,表示该值是UKNOWN,在不确定等字样。
当你的数据库驱动程序从数据库中检索NULL
值,它把它转换成任何对应于您正在使用的计算机语言,这在javascript将是一个NULL
变量undefined
概念。
你可以简单地改写这个条件的布尔检查:
if (!activated)
这将赶上情况activated
是一个空字符串,不定值,一个假布尔值,而数字0
。
如果你想允许0
,则:
if (activated !== 0)