javascript - MongoDB findOne() 返回函数中的值,但不返回 Node 中的值

标签 javascript node.js mongodb

所以我尝试使用函数从 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/

相关文章:

javascript - 如何删除不需要的键和键值

javascript - 从引用数组中删除项目( Mongoose )

javascript - SailsJS 和 MongoDB 聚合框架与自定义查询有关的问题

javascript - Highcharts : Tooltip box thousand seperator

javascript - 如何在javascript中从多个数组中获取单个数组

node.js - Sequelize 错误 : Unhandled rejection TypeError: Cannot read property '_pseudo of undefined

mysql - Waterline:在创建时填充模型相关对象(Sails)

node.js - 你怎么知道数据已经新添加到你的 MongoDB 中了

javascript - AdminLTE 和 AngularJS 内容包装器的最小高度错误

Javascript 访问同一个类的函数