将MongoDB数据传递到ExpressJS中的Jade视图
Passing MongoDB data to Jade view in ExpressJS
我有一个问题希望你能帮忙。基本上,我正在对MongoDB集合进行查询,并试图将结果传递回一个jade视图。
app.helpers({
clients: function(){
users.find({uid:req.session.uid}).toArray(function(err, post){
if(err){
console.log(err);
}else{
return post;
}
});
}
});
这是我在视图中引用辅助对象的地方
p #{clients}
现在我正在获取[对象对象]作为视图中的值。如果我记录结果,我会得到预期的文档结果,但如果我试图将其推送到数组或var中,我会获得[object object]结果。有什么想法吗?
这不起作用,因为您使用以下结构:
clients: function() {
(some code)(function() {
return variable;
});
}
return variable;
语句从内部函数返回。但是您需要从外部函数返回变量。那么如何做到这一点呢?事实上你不能。您应该在视图中进行查询,并将结果存储在请求中,然后将请求变量传递给模板。不能在助手中使用异步函数。
另一件事是,当你在助手中使用函数时,那么在模板中你应该使用
p #{ clients() }
因为它是一个函数。尽管如此,在这种情况下它不会起作用。
相关文章:
- 无法导出函数expressjs/requestjs中的变量
- Save不是ExpressJS中的函数
- Cookie for Domain 及其 Node/ExpressJS 中的子域
- 我无法从nodejs + expressjs中的req.body获取数据
- 将变量发送到 ExpressJS 中的路由器
- ExpressJS中的每个模块都有单独的客户端js
- 将MongoDB数据传递到ExpressJS中的Jade视图
- 速率限制以防止ExpressJS中的恶意行为
- ExpressJS中的最佳会话存储-NodeJS
- 如何在ExpressJS中的不同文件中创建自己的异步函数
- 使用module.exports将expressJS中的服务器对象暴露给另一个文件
- expressjs中的路由错误
- 从expressJS中的POST方法获取值
- 在 expressjs 中的回调之间传递路由参数的最佳方法
- 如何访问mongodb集合返回的Expressjs中的特定字段.找到方法
- ExpressJS中的POST请求问题
- 实现套接字的最佳方式是什么?io作为ExpressJS中的子模块
- 如何使用POST在一个页面中提交多个表单,而不刷新ExpressJS中的页面
- ES6 类在 ExpressJS 中的行为不同
- 有没有更好的方法来处理Node.js/Expressjs中的嵌套回调?