2013-09-24 72 views
0

我在我的server.js中有一個變量,我們稱之爲'a'。當我需要一個模塊時,它無法訪問變量a。例如:Node.js繼承本地變量

server.js

myModule = require('./myModule.js'); 
var a = 'Hello!' 
myModule.say(); 

myModule.js

exports.say = function() { 
    console.log(a); 
} 

我怎樣才能使它如此myModule.js可以訪問server.js中的變量,而無需函數的參數?

+0

檢查一個:http://stackoverflow.com/questions/3919828/share-variables-between-modules-in-javascript-node-js – Rami

+0

那麼,顯示如何從主應用程序訪問模塊中的變量。我想弄清楚如何從模塊中的應用程序訪問變量。 – SpiritedDusty

+0

'global'在整個應用程序中共享。如果你不喜歡那樣,你也可以分配給模塊/使用'module.exports',或者將重要的東西傳遞給一個初始化函數,或者用一個需要選項的類來表示整個模塊,或者... – Ryan

回答

0

server.js:

myModule = require('./myModule.js'); 
global.a = 'Hello!' 
myModule.say(); 

myModule.js:

exports.say = function() { 
    console.log(global.a); 
} 

但是,請記住全局通常氣餒的Node.js(和JavaScript一般)。 封裝某些功能不是模塊的一點嗎?如果是這樣,它不應該依賴於現有的或正在定義的外部變量。

理想情況下,您希望通過某種初始化函數或配置參數將所需信息傳遞到模塊中。

+0

阿好了我懂了。謝謝! – SpiritedDusty