【问题标题】:Node.js `require` into an array instead of a variableNode.js `require` 放入数组而不是变量
【发布时间】:2016-11-05 14:05:20
【问题描述】:

以后可以var x = require('x.js')x 访问所有好东西。构建所需事物数组的最接近方法是什么,例如:

var xs = [require('a.js'), require('b.js')]

然后以xs[0].featurexs[1].feature 访问导出的功能?

【问题讨论】:

  • @JordanHendrix 是的,它不起作用。所以,我要求最接近的类似方法来做到这一点。
  • @JordanHendrix 好吧,半小时后我发现我一定是搞错了,确实可以require 一堆东西。

标签: javascript node.js require


【解决方案1】:

除非您有充分的理由这样做,否则应该避免这样做。但是使用Array.prototype.map() 可以非常简单地完成。

var xs = ['foo.js', 'bar.js', 'baz.js'].map(require);

【讨论】:

    【解决方案2】:

    也许你可以这样做:

    var x = [];
    var requiredLibraries = ['a.js', 'b.js', 'c.js'];
    
    requiredLibraries.forEach(function(element, index, array) {
        x.push(require(element));
    });
    

    编辑请注意,我认为这不是一个好主意,因为它可能会带来混乱并降低代码的可读性,如果没有别的。

    【讨论】:

    • 假设您有多个文件,每个文件都提供一种功能。而且您有一个设置可以选择其中一个功能。在我看来,构建函数数组(或 Map)并使用给定选项对其进行索引是有意义的。所以,我认为这不会损害可读性。
    • 好吧,在那种情况下,我想这可能是有道理的,但希望你能记得六个月后你在那儿做了什么,当你再次回来工作时:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多