2013-02-10 73 views
0

我有一個包含多個在客戶端網頁上導入的js源文件的目錄。我也需要將所有這些源文件導入到服務器端節點js應用程序中。Nodejs使用多個源文件中的modules.export導入多個類

我用以下方法至今

if('undefined' != typeof global) { 
    module.exports = global.Class= Class; 
} 

的代碼添加到源文件

結束不過,我需要避免編輯源文件。如何導入包含源文件夾的所有類是否有一個好方法?而不是僅僅運行源文件併爲每個類使用modules.exports?還有一種方法可以給require()調用一個目錄並讓它導入所有包含的源文件?

回答

2

通過將對象導出到全局命名空間中,您有點違背Javascript中的最佳標準。 module.exports中的要點是,您可以使用requireJS導入您需要的對象,而不是每個對象都可以使用。所以恐怕答案是否定的,require調用只接受單個模塊引用(由於將對象賦值給一個變量的函數的返回值)。

'好'的方法是在客戶端包含一個單獨的文件,該文件包含引用它需要繼續工作的模塊/對象的主要無聲代碼。源文件將在需要時包含在內。

1

文件:tool.js

(function(exports) { 

    exports.Hello = function(name) { 
     console.log('Hello %s', name); 
    } 

})(exports || window); 

文件index.js

require('./tool').Hello('username');