Cos*_*sta 4 templating node.js express
我正在尝试设置一些特定于响应的变量,当我从我的中间件中记录它时,我正在undefined考虑res.locals,但是如果我从路由函数中记录它,它会返回该函数.
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(function (res, req, next) {
console.log("res.locals from app.use middleware: ", res.locals);
// res.locals.boom = 'nice';
// res.locals.zoom = 'yeah!';
next();
});
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
您的请求和响应对象向后.显然,如果您知道代码中的差异,命名无关紧要,但最好保持正确命名.
app.use( function (request, response, next) {
// stuff
});
Run Code Online (Sandbox Code Playgroud)
我不记得我的头脑,但我相信你想:
request.app.locals;
Run Code Online (Sandbox Code Playgroud)
用我上面的例子.再次,不是100%肯定.您始终可以控制出要检查的请求对象.