2015-06-07 40 views
1

我使用NodeJs + ExpressJs +把手來建立一個網站。渲染頁面時,我需要每次傳遞3個東西:isAuthenticated,userEmail和FlashMsg。 取而代之的是:將express作爲res.render中的變量傳遞給req是否安全?

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

是否安全,那樣做使萬物將在頁面上訪問?:

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']) 
); 
相關問題