为了账号安全,请及时绑定邮箱和手机立即绑定

node.js需要文件夹中的所有文件吗?

node.js需要文件夹中的所有文件吗?

牛魔王的故事 2019-07-31 14:44:03
node.js需要文件夹中的所有文件吗?如何要求node.js中文件夹中的所有文件?需要这样的东西:files.forEach(function (v,k){  // require routes  require('./routes/'+v);}};
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

当require被赋予文件夹的路径时,它将在该文件夹中查找index.js文件; 如果有,则使用它,如果没有,则失败。

最有意义的是(如果你可以控制文件夹)创建一个index.js文件然后分配所有“模块”然后只需要它。

yourfile.js

var routes = require("./routes");

index.js

exports.something = require("./routes/something.js");exports.others = require("./routes/others.js");

如果您不知道文件名,则应编写某种加载器。

装载机的工作示例:

var normalizedPath = require("path").join(__dirname, "routes");require("fs").readdirSync(normalizedPath).forEach(function(file) {
  require("./routes/" + file);});// Continue application logic here


查看完整回答
反对 回复 2019-07-31
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我建议使用glob来完成该任务。


var glob = require( 'glob' )

  , path = require( 'path' );


glob.sync( './routes/**/*.js' ).forEach( function( file ) {

  require( path.resolve( file ) );

});


查看完整回答
反对 回复 2019-07-31
?
四季花海

TA贡献1811条经验 获得超5个赞

基于@tbranyen的解决方案,我创建了一个index.js文件,在当前文件夹下加载任意javascripts作为其中的一部分exports。


// Load `*.js` under current directory as properties

//  i.e., `User.js` will become `exports['User']` or `exports.User`

require('fs').readdirSync(__dirname + '/').forEach(function(file) {

  if (file.match(/\.js$/) !== null && file !== 'index.js') {

    var name = file.replace('.js', '');

    exports[name] = require('./' + file);

  }

});

然后你可以require从任何其他地方的这个目录。


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 627 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信