我正在尝试检查用户名是否在node.js
应用程序中使用。由于某些原因,我执行“ db.get ..”后无法设置变量。我希望能够根据名称是否被使用或是否有错误来设置“ taken”。
我对异步调用不是很熟悉,而且我不确定这到底是异步的。我已经读过关于异步调用here和here的内容,但仍然无法解决。我很难在代码中实现它。
我正在使用sqlite3
和本地数据库文件对其进行测试。
function isUsernameTaken(username) {
console.log("checking username");
query = "SELECT * FROM `account` WHERE username = ?";
let taken = true
db.get(query, [username], function(error, post){
if(error){
console.log("error: "+ error);
taken = 500;
}
else{
console.log("the post: " +post);
if(post === undefined || post.length == 0 || !post){
taken = false
}
}
})
console.log("Name taken?: " +taken);
return taken;
}
我希望能够返回采用的变量,但它始终返回为
true