我目前正在开发一个个人项目,因此我可以使用 node.js 和 mongodb,因为我以前从未使用过它们。
我目前有一个问题,我无法弄清楚如何从以下函数中返回 true 或 false:
function checkRefreshToken(token) {
MongoClient.connect(url, { useUnifiedTopology: true } ,function(err, db) {
if (err) throw err;
var dbo = db.db("database");
dbo.collection("collection").findOne({ token: token }, function(err, result) {
if (err) throw err;
if (result !== null) {
db.close();
return true;
} else {
db.close();
return false;
}
});
});
}
该函数所做的只是检查集合中是否存在令牌。但是,我不能从函数返回真或假——它总是返回未定义的。我认为这是因为返回值位于“findOne()”函数内部。
我正在寻找的是如何返回 true 或 false 以便我可以像这样使用该函数:
if (checkRefreshToken("abc")) {
// Do something
}
谢谢 :)
PS 抱歉,如果这是一个简单的解决方法,就像我说这是我第一次真正使用 node 和 mongo