【问题标题】:Export all objects in node.js导出 node.js 中的所有对象
【发布时间】:2012-05-21 18:45:19
【问题描述】:

我的一个 node.js 模块太大了,所以我把它分成了几个更小的(子)模块。

我将所有相关对象复制并粘贴到每个子模块中,现在看起来像

var SOME_CONSTANT = 10;

function my_func() { etc... };

现在我想将每个子模块中的所有内容全部导出,而不必明确说出exports.SOME_CONSTANT = SOME_CONSTANT 一百万次(我发现这既丑陋又容易出错)。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    我假设您不想导出每个局部变量。

    这些天我会设法自动化这个,但现在我经常使用这种技术。

     var x1 = { shouldExport: true  } ; 
    

    //在您喜欢的编辑器中创建一个宏来搜索和替换,以便

    x1.name = value ; // instead of var name  = value
    

    name becomes x1.name   
    

    //模块主体

    for ( var i in x1) { exports.better_longer_name[i]   = x1[i] ;} 
    //or if you want to add all directly to the export scope  
    for ( var i in x1) {  exports[i] = x1[i] ; }  
    

    【讨论】:

      【解决方案2】:
      module.exports = {
          SOME_CONSTANT_0 : SOME_CONSTANT_1 ,
          SOME_CONSTANT_1 : SOME_CONSTANT_2 ,
          SOME_CONSTANT_2 : SOME_CONSTANT_3
      }
      

      那么为什么你需要那个“百万”常量来导出呢?

      【讨论】:

      • 因为这个重复的代码(DRY,引发错误),加上是丑陋的。我更喜欢可以复制并粘贴到每个子模块中的自动化解决方案。
      • 我认为你需要一些技巧来重建你的代码,例如将 = 替换为 : 和 ;到,
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      相关资源
      最近更新 更多