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

标签 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 的新手,我搞不懂。我是否需要实现回调才能按照我尝试的方式使用数据?

最佳答案

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

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

关于javascript - 如何从连接到 Mongodb 的 Node 中的函数返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48235348/

相关文章:

javascript - 在 JavaScript 中展平两个日期范围数组?

javascript - 鼠标移开时关闭引导模式对话框

javascript - 如何将 http.get () 的结果用于两个或多个非 Angular 组件?

javascript - 如何从不同的组件调用其他组件功能?

node.js - 响应后在超测中访问 "req"对象

javascript - 如何在 ajax 响应中从字节流呈现 pdf

javascript - 如何在 Node js 中检查 mysql 中是否存在行

javascript - 无法将 Bootstrap 加载到 nodejs

javascript - 要求 ('babel/register' )不起作用

javascript - 在 DialogFlow 内联编辑器中使用 'request-promise-native' 包