所以我尝试使用函数从 Node 中的 MongoDB 分配值。我的问题是,它找到了数据,但在 findOne 函数之外返回未定义。
代码:
async function findFile(userid) {
let ufile = mCollection.findOne({"uid": userid}, function(err, res) {
console.log(res);
return res;
});
console.log(ufile);
};
findFile(authId);
结果: Console log
最佳答案
您正在回调中返回。这意味着 mCollection.findOne 本身不返回任何值。
您可以做的是将值记录在回调中,如下所示:
async function findFile(userid) {
let ufile = mCollection.findOne({"uid": userid}, function(err, res) {
console.log(ufile);
});
};
findFile(authId);
或者将函数作为 Promise 运行,然后等待它:
async function findFile(userid) {
let ufile = await mCollection.findOne({"uid": userid});
console.log(ufile)
};
findFile(authId);
关于javascript - MongoDB findOne() 返回函数中的值,但不返回 Node 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123368/