猿问

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

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

如何要求node.js中文件夹中的所有文件?


需要这样的东西:


files.forEach(function (v,k){

  // require routes

  require('./routes/'+v);

}};


牛魔王的故事
浏览 629回答 3
3回答

Cats萌萌

当require被赋予文件夹的路径时,它将在该文件夹中查找index.js文件; 如果有,则使用它,如果没有,则失败。最有意义的是(如果你可以控制文件夹)创建一个index.js文件然后分配所有“模块”然后只需要它。yourfile.jsvar routes = require("./routes");index.jsexports.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

慕婉清6462132

我建议使用glob来完成该任务。var glob = require( 'glob' )  , path = require( 'path' );glob.sync( './routes/**/*.js' ).forEach( function( file ) {  require( path.resolve( file ) );});

四季花海

基于@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从任何其他地方的这个目录。
随时随地看视频慕课网APP
我要回答