我有一个问题,希望你能提供帮助。基本上,我正在对MongoDB集合进行查询,并尝试将结果传递回玉视图。
app.helpers({
clients: function(){
users.find({uid:req.session.uid}).toArray(function(err, post){
if(err){
console.log(err);
}else{
return post;
}
});
}
});
这是我在视图中引用辅助对象的地方
p #{clients}
现在我只是将[object Object]作为视图中的值。如果我记录结果,我将获得预期的文档结果,但如果我尝试将其推入数组或var,我得到[object Object]结果。有什么想法吗?
答案 0 :(得分:1)
这不会起作用,因为您使用以下结构:
clients: function() {
(some code)(function() {
return variable;
});
}
return variable;
语句从内部函数返回。但是你需要从外部函数返回变量。那怎么做?实际上你不能。您应该在视图中执行查询并将结果存储在请求中,然后将请求变量传递给模板。您不能在帮助程序中使用异步函数。
另一件事是当你在帮助器中使用一个函数时,那么在模板中你应该使用
p #{ clients() }
因为它是一个功能。然而,在这种情况下,它不会起作用。