Javascript 在Express.js中,是否有相当于res.locals的路由?
使用Express.js/Jade时,可以向res.locals添加函数(或变量),然后在Jade视图中使用该函数,如下所示 在Express中间件中:Javascript 在Express.js中,是否有相当于res.locals的路由?,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,使用Express.js/Jade时,可以向res.locals添加函数(或变量),然后在Jade视图中使用该函数,如下所示 在Express中间件中: res.locals.myUtilFunction = function(){ return 'Hello' }; 玉器: - console.log(myUtilFunction()); 是否有可能在快速路线功能内部实现类似的功能?比如: exports.index = function(req, res){ myUtilFunc
res.locals.myUtilFunction = function(){ return 'Hello' };
玉器:
- console.log(myUtilFunction());
是否有可能在快速路线功能内部实现类似的功能?比如:
exports.index = function(req, res){
myUtilFunction(); //Instead of having to do res.locals.myUtilFunction() each time...
}
我到处寻找答案,但没有找到。任何帮助都将不胜感激。是的,您可以将其绑定到global,尽管我可能会避免使用它 app.js
global.myFunction = function (text){
console.log(text);
}
var express = require('express');
var routes = require('./routes');
....
routes/index.js
exports.index = function(req, res){
myFunction('test');
res.render('index', { title: 'Express' });
};
您可以使用自定义函数将任何需要的内容绑定到请求和响应对象。 这样,您就不必绑定到全局范围 在加载路由器之前,只需将其放入初始化代码中
app.use function(req, res, next) {
req.loadWhatever = function() { ... };
return next();
}
在路由方法中,您可以访问
req.loadwhich
该函数访问req或res吗?如果不是,你可以使用declare作为全局函数或模块函数。我不得不同意,绑定到全局函数并不理想。。。然而,这似乎是实现这一目标的唯一途径。我只是希望能有某种神奇的JS式解决方案:)记住我对@Brendan答案的评论,你的解决方案似乎是一个很好的折衷方案。谢谢(我会支持你的回答,但我的代表还不够好)。谢谢。:)很高兴听到我能帮忙!