使用Express.js / Jade时,可以向res.locals添加一个函数(或变量),然后在如下的Jade视图中使用所述函数。
在Express中间件中:
res.locals.myUtilFunction = function(){ return 'Hello' };
在玉中:
- console.log(myUtilFunction());
是否可以在Express路线功能中实现类似的功能?像:
exports.index = function(req, res){
myUtilFunction(); //Instead of having to do res.locals.myUtilFunction() each time...
}
我搜索了高低的答案,却找不到答案。任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用自定义函数将您想要的任何内容绑定到请求和响应对象。 这样您就不必绑定到全局范围。
在加载路由器之前,请将其放入初始化代码中。
app.use function(req, res, next) {
req.loadWhatever = function() { ... };
return next();
}
在您的路由方法中,您可以访问req.loadWhatever
。
答案 1 :(得分:0)
是的,你可以把它绑定到全球,虽然我可能会避免从这个
中做出一个习惯app.js
global.myFunction = function (text){
console.log(text);
}
var express = require('express');
var routes = require('./routes');
....
路由/ index.js
exports.index = function(req, res){
myFunction('test');
res.render('index', { title: 'Express' });
};