快速.js将变量从函数传递到视图
Express.js pass variable from function to view
我需要将从上一个函数创建的一些数组传递给下一个函数,以便将它们发送到客户端。现在我使用公共变量来实现我的目标,但我知道这不是一个好的做法,可能有更好的方法来做我正在寻找的事情。这是我的代码:
var myArray; // public array
app.use('/users', findUsers, someOtherFunctions, function(req, res){
res.send('users.ejs', {
array: myArray,
(etc...)
})})
function findUsers(req, res, next){
db.find({}, function(err, array){
if(err) throw err;
if(array.length > 0){
myArray = array
}
})
next();
}
有没有另一种方法可以在不创建公共变量的情况下做到这一点?谢谢!
如果myArray
应该包含特定于此特定请求的内容(并且看起来确实如此),则可能需要使用 res.locals
,有关详细信息,请参阅参考:http://expressjs.com/en/api.html#res.locals。
更新:
因此,使用res.locals
您的示例将如下所示:
app.use('/users', findUsers, someOtherFunctions, function(req, res) {
res.send('users.ejs', {
array: res.locals.myArray,
(etc...)
});
});
function findUsers(req, res, next) {
db.find({}, function(err, array) {
if (err) throw err;
if (array.length > 0) {
res.locals.myArray = array
}
next();
});
}
相关文章:
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 如何在视图模型contet更新更新上调用Jquery函数
- 仅在响应视图中激发jQuery函数
- setInterval函数不会更改视图中的$scope
- 调用在同一视图中使用javascript在视图中创建的函数
- 从Nodejs中的函数返回数组,并将其发送到ejs视图
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- 挖空视图模型函数仅影响最后一个实例
- 未定义的主干视图不是函数冲突
- 对视图上函数的角度绑定导致对数据服务的无限调用
- Angular:将对象存储在服务中以在视图中显示和将crud函数存储到服务器的最佳方式是什么
- 控制器内部的scope函数不根据视图中的ng模型更新值
- 主干.js和 jquery 将单击事件绑定到视图函数
- 无法在单击按钮时调用视图函数主干
- 如何在单独的文件中从另一个视图调用主干视图函数
- 在CouchDB map和reduce视图函数中有哪些JavaScript函数可用
- 用BackboneJS从子视图调用视图函数
- 如何在Django中调用一个带有模板参数的视图函数并返回一个python对象
- 调用木偶.js中的父视图函数
- Backbone.js正在访问另一个视图函数