node.js - 我可以编写中间件来影响发送到模板渲染器的数据吗?

标签 node.js express

我正在编写一个基于 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/

相关文章:

node.js - 在 Mongoose 上定义自定义排序函数

javascript - 连接两个集合并在 Mongoose 中对它们进行排序

javascript - 对象 #<IncomingMessage> 没有方法 'post'

javascript - 获取 RangeError [ERR_HTTP_INVALID_STATUS_CODE] : Invalid status code: undefined in express app

node.js 子 fork 进程编码

node.js - 我如何模拟 auth0 身份验证进行测试?

Node.Js 部分数据

javascript - nodejs函数没有返回值

javascript - Express MongoDB find() 基于 _id 字段

node.js - 缺少 OpenID 标识符