Ros*_*oss 2 node.js express pug
将请求对象传递给jade渲染器可能有什么问题?
这似乎是一种简单的工作方式.特别是当express.js已经将请求对象用作附加数据的载体时,因为HTTP请求进入其中间件端点.
因此,不是将自定义数据对象传递给渲染的玉,而是只需将数据附加到请求中,从而允许在jade中处理更多逻辑.例如:
app.get("/", function (req, res) {
res.render("index", req);
});
Run Code Online (Sandbox Code Playgroud)
做这种技术有后果吗?这可能是皱眉还是羡慕?它可能会暴露给玉石吗?性能影响?
例如,以下是一些希望将请求中已有数据发送给jade的人:
我确信有更多相关问题可以通过发送请求来解决.不建议,为什么?
如何express
处理当地人的设计似乎" 包括所需的东西 ".它只是没有对这是什么做出任何假设.
因此,如果在您的情况下,您需要附加到请求的大部分属性,并且不希望必须从中" 提取 "它们(" 而不是将自定义数据对象传递给呈现的玉 "),那应该没问题.
但是,可能的问题并不在于您是否将其包含在本地人中,而是您是否将其用作拐杖并使视图过于复杂.您希望保持您的观点相当简单,只需" 足够聪明 "即可呈现所需内容.
旁注:我建议定义它,req
或者request
是本地而不是它的属性:
res.render("index", { req: req });
Run Code Online (Sandbox Code Playgroud)
这至少提供了以下好处:
由于Express有3个本地的源,它需要合并(app.locals
,res.locals
并locals
传递给res.render()
),这使得它可以在单个属性之后完成,而不必遍历请求中的所有内容.
任何方法仍然附加到实例而不是复制到普通Object
.
您也可以将它附加在一个小型中间件中,因此它不是特定于路由的:
app.use(function (req, res, next) {
res.locals.req = req;
next();
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4689 次 |
最近记录: |