Безопасно ли добавить параметр req? - PullRequest
2 голосов
/ 20 февраля 2012

В экспрессе, когда я использую промежуточное программное обеспечение для маршрутизации, нормально ли добавлять объект запроса?Или это плохая картина?Альтернативы?Спасибо.

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 ]

5 голосов
/ 20 февраля 2012

Я не понимаю, почему вы не должны.

Я много этим занимаюсь.

У меня сложилось впечатление, что это то, чем обычно занимается промежуточное ПО.

Из экспресс-документов: http://expressjs.com/guide.html#route-middleware

Они устанавливают req.user в своем промежуточном ПО в качестве текущего пользователя.

0 голосов
/ 07 мая 2012

Экспресс-документы предполагают, что это несколько стандартная практика:

http://expressjs.com/guide.html#route-middleware

Но это может значительно повлиять на производительность из-за работы V8:

http://blog.tojicode.com/2012/03/javascript-memory-optimization-and.html

http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript

0 голосов
/ 20 февраля 2012

Я согласен с j_mcnally, что это хороший шаблон, если вы не выходите за борт.В частности, я добавляю большинство вещей, которые более тесно связаны с ответом на объект res.Это могут быть такие вещи, как информация о компоновке, фрагменты HTML, мое промежуточное представление ответа в jsdom env и т. Д. Для req целесообразно использовать элементы, представляющие строку запроса или информацию о теле запроса.Это могут быть такие параметры, как входные параметры, проанализированные поисковые запросы, текущий объект пользователя и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...