2012-01-09 87 views
1

如何實現一個模塊'test',它暴露了兩個函數getter和setter來獲取和設置其在nodejs中的成員數據?Nodejs Modules Implementation

訣竅是通過制定者從模塊中設置的數據說「一」在「測試」應該可以訪問通過「測試」

的情況是,一旦我們註冊請求和資源對象的吸氣劑模塊「B」的http請求從索引'測試',應該可以通過聲明require('test')來訪問應用中的所有其他模塊

這是可能的nodejs?

+0

如果我沒有錯,找到實現它的另一種方式;聲明module.exports = new test()並將'test'模塊實現爲一個javascript類。這是有效的,因爲在第一次需求之後,節點總是返回緩存對象('test')。所以我們可以使用緩存對象的getter和setter – Tamil 2012-01-09 17:26:41

回答

2

即使設置了全局變量,也無法實現該目標,因爲reqres可在每個頁面請求中訪問(因此將它們設置爲全局變量會使競爭條件發生)。

實現此目的的唯一方法是將req和res作爲參數傳遞給該模塊。

例子:

app.js

var http = require('http'); 
http.createServer(function (req, res) { 
    require('./sample')(req, res); 
}).listen(1337, "127.0.0.1"); 

sample.js

module.exports = function (req, res) { 
    // do stuff with req and res here 
} 
+0

謝謝..只是發現東西工作:) – Tamil 2012-01-09 09:12:48