我正在编写一个基于 Node.js 和 Express 的 Web 应用程序,使用 Dust 作为我的模板。我的 Dust 模板都在单独的文件中使用相同的主布局。现在我的应用程序中的简单路由处理程序如下所示:
app.get('/', function (req, res) {
res.render('index', {
tenant: req.tenant
});
});
租户用于渲染主布局的某些部分。现在,我觉得将“租户”变量添加到每个路由处理程序中的 View 模型中效率非常低(从开发时间角度来看)。在 ASP.NET MVC 中,我会编写一个操作过滤器,该过滤器在每个操作之后运行,并将租户添加到 View 模型中。我可以在 Express 中做类似的事情吗?编写一些连接或路由器中间件?或者 res.render 是否立即执行渲染而无需稍后修改 View 模型?
最佳答案
发布消息两分钟后,IRC 上的一个好人给了我答案。
res.locals.tenant = <tenant>
在中间件中完成这项工作。
关于node.js - 我可以编写中间件来影响发送到模板渲染器的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601627/