Tec*_*eer 8 middleware node.js express
我想知道是否有一种内置的方法来扩展Express.js的res.render函数,因为我想将一组默认的"locals"传递给每个渲染的模板.目前我编写了一个小型中间件,它使用underscore.js的扩展函数来合并默认的"locals"和特定于该模板的"locals":
app.use(function(req, res, next){
res.render2 = function (view, locals, fn) {
res.render(view, _.extend(settings.template_defaults, locals), fn);
};
next();
});
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
app.locals 很可能你正在寻找:
app.locals(settings.template_defaults);
Run Code Online (Sandbox Code Playgroud)
随着res.locals和res.render,Express已经能够为您合并价值:
// locals for all views in the application
app.locals(settings.template_defaults);
// middleware for common locals with request-specific values
app.use(function (req, res, next) {
res.locals({
// e.g. session: req.session
});
next();
});
// and locals specific to the route
app.get('...', function (req, res) {
res.render('...', {
// ...
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3011 次 |
| 最近记录: |