我正在编写一个函数,该函数返回一个列表,其中包含在Mongo数据库中注册的所有用户。
function getUsers() {
db.collection('users').find({}, {username: true}, function(error, results) {
if (results) return results;
return [];
});
}
问题是Mongoose需要一个匿名函数来获取结果,如果我尝试返回那些结果,则只返回对匿名函数的影响,因此父函数返回undefined。我想Mongoose是异步运行匿名函数的。
解决这个问题的最佳方法是什么?
感谢。
答案 0 :(得分:2)
使这项工作最直接的方法是通过传递回调使getUsers
异步,并使用该回调来回调find
:
function getUsers(callback) {
db.collection('users').find({}, {username: true}, callback);
}
然后像这样使用它:
getUsers(function(error, results) {
if (results) {
// do something with results
} else {
// no results
}
});