gpt4 book ai didi

Node.js - 扩展 res.render 的 Expressjs 中间件

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:27 24 4
gpt4 key购买 nike

我想知道是否有扩展 Express.js 的 res.render 函数的内置方法,因为我想将一组默认的“locals”传递给呈现的每个模板。目前我已经编写了一个小型中间件,它使用 underscore.js 的扩展函数来合并默认的“locals”和特定于该模板的那些:

app.use(function(req, res, next){
res.render2 = function (view, locals, fn) {
res.render(view, _.extend(settings.template_defaults, locals), fn);
};
next();
});

有更好的方法吗?

最佳答案

app.locals可能是您正在寻找的:

app.locals(settings.template_defaults);

连同 res.localsres.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('...', {
// ...
});
});

关于Node.js - 扩展 res.render 的 Expressjs 中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com