Nodejs使用来自多个源文件的modules.export导入多个类

时间:2013-02-10 22:08:09

标签: node.js

我有一个目录,其中包含多个js源文件,这些文件是在客户端网页上导入的。我还需要将所有这些源文件导入服务器端节点js app。

到目前为止,我使用了以下方法

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

代码附加到源文件的末尾

但是我需要避免编辑源文件。有没有一个很好的方法来导入包含源文件夹的所有类?而不只是运行源文件和每个类有一个modules.exports?还有一种方法可以为require()调用提供一个目录,并让它导入所有包含的源文件吗?

3 个答案:

答案 0 :(得分:2)

通过将对象导出到全局命名空间,您可能会违反Javascript中的最佳标准。 module.exports中的点是为了您可以使用requireJS导入所需的对象,而不是让每个对象可用。所以我担心答案是否定的,require调用只接受单个模块引用(由于函数的返回值将对象分配给变量)。

“好”方法是在客户端上包含一个文件,该文件包含引用其继续工作所需的模块/对象的主要静默代码。然后,源文件将在需要时包含在内。

答案 1 :(得分:1)

如果您可以修改客户端文件,则可以使用此模式:http://caolanmcmahon.com/posts/writing_for_node_and_the_browser/

答案 2 :(得分:1)

file:tool.js

(function(exports) {

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

})(exports || window);

文件index.js

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