我正在尝试检查node.js
应用程序中是否使用了用户名。出于某种原因,我在执行“db.get..”后无法设置变量。我希望能够根据名称是否被采用或是否有错误来设置“采用”。
我对异步调用不是很熟悉,我也不确定什么是真正的异步。我在这里和这里读过异步调用,但我仍然无法理解它。我很难将它实现到我的代码中。
我正在使用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;
}
我希望能够返回所采用的变量,但它总是返回为
真的