如何从连接到Mongodb的Node中的函数返回数据?

时间:2018-01-12 23:21:14

标签: javascript node.js

function getEmployees(jobID){
    MongoClient.connect(url, function(err, db){
        if(err) throw err;
        var dbo = db.db("mydb");
        dbo.collection("employees").find({employee:jobID}).toArray(function(err, result){
            if(err) throw err;
            db.close();
            console.log(result) // shows the employees. cool!
            // how do I return result??
        })
    })
}
var employees = getEmpoyees(12345);  // I want the employees variable to be an array of employees

我是node.js和javascript的新手,我无法解决这个问题。我是否需要实现回调以按照我尝试的方式使用数据?

1 个答案:

答案 0 :(得分:2)

非常有趣的问题。 在这种情况下,您无法直接返回值。 所以我实现了间接方式来获取返回值。 为此,我在“getEmployees”函数中添加了“callback”函数作为函数参数。 更新后的代码如下。

function getEmployees(jobID, callBack){
MongoClient.connect(url, function(err, db){
    if(err) throw err;
    var dbo = db.db("mydb");
    dbo.collection("employees").find({employee:jobID}).toArray(function(err, result){
        if(err) throw err;
        db.close();
        console.log(result) // shows the employees. cool!
        // you can return result using callback parameter
        return callBack(result);
    })
})
}
var employees = getEmpoyees(12345, function(result) {
   console.log(result);
});  // I want the employees variable to be an array of employees