虽然我发现了与我相似的问题,但我无法独自解决问题。
在我的' ../ models / user' model我希望找到所有用户并将它们放入数组中,并将该数组返回给控制器(我将使用该信息)。
这是我的代码:
var mongoDatabase = require('../db');
var database = mongoDatabase.getDb();
function find() {
var test;
database.collection("customers").find().toArray( function(err, docs) {
if(err) throw err;
console.log(docs); //works fine
//I'd like to return docs array to the caller
test = docs;
});
console.log(test); //test is undefined
}
module.exports = {
find
};
我也注意到了,' console.log(test)'之前是#console; log(docs)'。我试过传递' docs'参数作为函数参数来找到'但没有结果。
答案 0 :(得分:2)
最好的方法是使用Promises。这样做。
function getUsers () {
return new Promise(function(resolve, reject) {
database.collection("customers").find().toArray( function(err, docs) {
if (err) {
// Reject the Promise with an error
return reject(err)
}
// Resolve (or fulfill) the promise with data
return resolve(docs)
})
})
}