【问题标题】:How to require() all files in a directory and send arguments如何 require() 目录中的所有文件并发送参数
【发布时间】:2015-12-30 21:50:32
【问题描述】:

我如何要求一个目录中的所有文件?

我需要要求一个目录中的所有文件,并连同它一起发送一个变量。 喜欢:require(file)(app)。我试过require-dir,但我不知道如何发送(app) 部分。

【问题讨论】:

  • 请展示或描述更多关于您要完成的工作。通常执行require() 会将模块分配给已知的变量名,以便可以在其他代码中引用它。 require-dir 模块源代码在这里github.com/aseemk/requireDir/blob/master/index.js,你可以抓住它并修改它以满足你的需要。或者您可以制作一个模块名称列表和一个循环来循环加载它们的数组。我不清楚这个问题的哪一部分你自己不知道该怎么做。
  • 我不需要变量名,我只想require()一堆文件,这样我就可以将routes之类的东西放在不同的文件中。 routes 需要 app 变量才能运行,因此我使用 require(./routes.js)(app);。但我不想手动要求每个文件,我希望它自动发生。
  • 请将附加信息放入您的问题中(使用编辑链接添加),以便您的问题更好地描述您想要完成的任务。
  • 在 Stack Overflow 上,您不应该将您的解决方案放入您的问题中。如果您最终得到的答案与您提供的任何答案都不接近,那么您可以将自己的答案发布到您的问题中,其中包含您的解决方案。这里的问题应该仍然是问题。不要在你的问题中加入答案。
  • 我这样做是为了以防其他人最终在谷歌上搜索这个问题。

标签: javascript node.js require autoload autoloader


【解决方案1】:

如果你想继续使用require-dir,试试这个:

var dir = requireDir('./path/to/dir');
for (var key in dir) {
  dir[key](app);
}

或者,您可以只使用fs:

require('fs').readdirSync('./yourdir').forEach(function(file) {
  require('./yourdir/' + file)(app);
});

【讨论】:

    猜你喜欢
    • 2016-12-17
    • 1970-01-01
    • 2015-05-22
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2017-03-26
    相关资源
    最近更新 更多