【问题标题】:Nodejs importing multiple classes with modules.export from multiple source filesNodejs从多个源文件中使用modules.export导入多个类
【发布时间】:2013-02-10 22:08:08
【问题描述】:

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

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

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

代码附加到源文件的末尾

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

【问题讨论】:

    标签: node.js


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 看起来很方便,不幸的是这不是一个选项
      【解决方案3】:

      文件:tool.js

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

      文件 index.js

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-07
        • 2015-08-27
        • 2014-05-27
        • 1970-01-01
        • 2019-04-12
        • 2021-03-01
        相关资源
        最近更新 更多