您需要toArray()光标上的方法返回结果数组,如下所示:
module.exports.findByUser = function(username, callback){
var test = db.collection("somecollection");
test.find({Username: username}).toArray(callback);
}
可以称为
router.get('/page', ensureAuthenticated, function(req, res, next) {
var username = req.user.username;
somemodule.findByUser(username, function(err, resp){
console.log(resp);
res.render('page', {
title: 'test page',
data: resp
});
});
});
使用 async/await 您可以执行以下操作:
module.exports.findByUser = function(username){
const test = db.collection("somecollection");
return test.find({Username: username}).toArray(); // return promise
}
称为
router.get('/page', ensureAuthenticated, async function(req, res, next) {
const resp = await somemodule.findByUser(req.user.username);
console.log(resp);
res.render('page', {
title: 'test page',
data: resp
});
})
或者只是使用承诺
router.get('/page', ensureAuthenticated, function(req, res, next) {
somemodule.findByUser(req.user.username).then(function(resp) {
console.log(resp);
res.render('page', {
title: 'test page',
data: resp
});
}).catch(function(err) {
console.error(err);
})
})