安全附加到req参数?

时间:2012-02-19 21:19:43

标签: node.js express

在express中,当我使用路由中间件时,可以附加到请求对象吗?或者这是一个糟糕的模式?备择方案?感谢。

app.get('/', getLayout, function(req, res){
    if(req.layout == 'simple') ...render simple layout...
    else ...render full layout...
});

,其中

getLayout = function(req, res, next){
    req.layout = (req.params.blah == 'blah') ? 'layout_simple' : 'layout_full';
    next();
}

3 个答案:

答案 0 :(得分:5)

我不明白为什么你不应该这样做。

我做了很多。

我认为这是中间件通常所做的事情。

来自快递文档: http://expressjs.com/guide.html#route-middleware

他们将req.user作为当前用户设置在他们的中间件中。

答案 1 :(得分:0)

我同意j_mcnally,只要你不过分,这是一个很好的模式。具体来说,我附加了与res对象的响应更密切相关的大多数内容。这将是布局信息,HTML片段,响应的中间jsdom env表示等等。对于req,添加查询字符串或请求正文信息表示的事物是有意义的。这将是输入参数,解析的搜索查询,当前用户对象等等。

答案 2 :(得分:0)