我使用sails.js,我想知道範圍變種和生命週期的var聲明爲一個帆控制器。範圍變量和生命週期到帆控制器nodejs
var user = {};
module.exports = {
index: function (req, res) {
user.connected = false;
return res.view({
user: user
});
},
member: function (req, res) {
user.connected = true;
return res.view('home/index', {
user: user
});
}
};
在首先我想只有在member
功能設置user
,但一旦我參觀了/成員的網頁,用戶與user.connected=true
初始化,當我參觀了/索引頁,它仍然連接。所以我將user.connected=false
添加到index
函數中,它的工作方式與預期相同。
但我完全不理解。據我所知,user
是HomeController.js
腳本的局部變量,每次加載文件時應該銷燬它,並在每次調用時將其重置爲{}
。
其實,雖然我寫的問題,我想到的東西...
因爲我用的是module.exports
,功能指標和成員被加載到內存和呼叫沒有在HomeController.js
完成腳本,但在module.exports
全局對象上,並且因爲user
是一個對象,所以他被「指針」引用,它不是一個副本,而是每個函數內的引用,所以當我對它進行更改時,它在任何使用引用的地方都會更改。它就像一個模塊內的全局對象,很奇怪。
我對不對?我錯過了什麼?你有更高級的解釋嗎?謝謝。
何,是的,我知道,事實上,實際上這段代碼是臨時的,我寫到設計師有一些變數,而不必關心數據庫!創建視圖只是假數據,真正的數據會在後面出現。 這只是當我創建假數據時,我想知道用戶var的生命週期和範圍,因爲它沒有按照我的預期行事。 – Vadorequest