javascript - MongoDB findOne() 在函数中返回值但不返回节点中的值
问题描述
所以我试图用一个函数从节点中的 MongoDB 分配值。我的问题是,它找到了数据,但它在 findOne 函数之外返回 undefined 。
代码:
async function findFile(userid) {
let ufile = mCollection.findOne({"uid": userid}, function(err, res) {
console.log(res);
return res;
});
console.log(ufile);
};
findFile(authId);
结果: 控制台日志
解决方案
您正在回调内部返回。这意味着 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);
推荐阅读
- cucumber - 如何仅根据黄瓜中的标签运行选定的场景?
- sql - DB sql Altibase '作为语言 java 名称' 使用
- javascript - 如何将python函数转换为rest api
- python - 使用python修改csv文件中的一些行
- cognos-11 - 我在哪里可以设置 cognos analytics 11 报告缓存打开/关闭
- python - 点积两个 4D Numpy 数组
- css - 如何将卡片内的所有内容对齐?
- php - Wordpress 数字分页未出现在自定义循环中
- node.js - “sudo npm install -g npm”减慢开发服务器的启动速度
- python - 如何根据列表中元组的第二个元素的总和对列表进行排序?