2015-06-07 2 views
1

Я использую NodeJs + ExpressJs + Handlebars для создания веб-сайта. При рендеринге страницы мне нужно передавать три вещи каждый раз: isAuthenticated, userEmail и FlashMsg. Вместо этого:Безопасно ли передавать req как переменную в res.render в expressJs?

res.render('/webPage', {isAuthenticated: req.isAuthenticated(), userEmail: req.user.email, flashMsg: req.flash()}); 

Безопасно ли это сделать как то так Everythings будет доступен на странице ?:

res.render('/webPage', {req:req}); 

Это слишком много вещей передаются на страницу или это не проблема? Спасибо.

+0

Если вы сообщите нам, почему вы хотели бы сделать мы могли бы сказать вам лучший способ сделать это – Datsik

+0

Мой маршрут должен передать все 3 вещи на страницы рулей. На странице мне нужно проверить, проверен ли req.isAuthenticated, мне нужно получить req.user.email и req.flash(), чтобы отображать сообщения об ошибках. Меня беспокоит, что если я передаю req вместо 3-х разделяющей переменной, я сэкономлю время, но безопасно или рискует взять слишком много бара или что-то в этом роде, потому что req содержит столько информации, которая вам не нужна? – nicgravel

ответ

0

Это зависит от того, что ваш шаблон делает с объектом, который вы его кормите. Перечисляет ли он свойства объекта? Если это так, это, вероятно, плохая идея. Ваш шаблон будет пытаться сериализовать объект req в JSON? Это тоже плохо.

Если вы хотите быть безопасным и имеют лаконичный код в то же время, вы могли бы включать в себя только свойства ваш шаблон заботится о так:

var _ = require('underscore'); 
res.render('/webpage', 
    _.pluck(req, ['isAuthenticated', 'user', 'flash']) 
); 
Смежные вопросы