2013-02-10 158 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');