所以我试图用函数从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);


或将功能作为承诺运行,然后等待:

async function findFile(userid) {

    let ufile = await mCollection.findOne({"uid": userid});
    console.log(ufile)

};

findFile(authId);

09-18 11:49