我正在使用NodeJs + ExpressJs + Handlebars来构建一个网站。渲染页面时,我需要每次传递3件事:isAuthenticated,userEmail和FlashMsg。 而不是这个:
res.render('/webPage', {isAuthenticated: req.isAuthenticated(), userEmail: req.user.email, flashMsg: req.flash()});
这样做是否安全,因此可以在页面上访问所有内容?:
res.render('/webPage', {req:req});
是否有太多东西传递给页面或者这不是问题? 感谢。
答案 0 :(得分:0)
这取决于您的模板对您提供的对象执行的操作。它是否枚举对象的属性?如果是这样,那可能是一个坏主意。您的模板是否会尝试将req
对象序列化为JSON?这也很糟糕。
如果您希望既安全又可以同时使用简洁的代码,那么您只能包含模板所关注的属性,如下所示:
var _ = require('underscore');
res.render('/webpage',
_.pluck(req, ['isAuthenticated', 'user', 'flash'])
);