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

需要像这样的东西:

files.forEach(function (v,k){
  // require routes
  require('./routes/'+v);
}};

当前回答

如果你在example ("app/lib/*.js")目录中包含了*.js的所有文件:

在app/lib目录下

example.js:

module.exports = function (example) { }

示例- 2. - js:

module.exports = function (example2) { }

在目录app中创建index.js

index.js:

module.exports = require('./app/lib');

其他回答

另一种选择是使用require-dir包,它允许您执行以下操作。它也支持递归。

var requireDir = require('require-dir');
var dir = requireDir('./path/to/dir');

我有一个文件夹/字段的文件与单个类每个,例如:

fields/Text.js -> Test class
fields/Checkbox.js -> Checkbox class

把它放到fields/index.js中,导出每个类:

var collectExports, fs, path,
  __hasProp = {}.hasOwnProperty;

fs = require('fs');    
path = require('path');

collectExports = function(file) {
  var func, include, _results;

  if (path.extname(file) === '.js' && file !== 'index.js') {
    include = require('./' + file);
    _results = [];
    for (func in include) {
      if (!__hasProp.call(include, func)) continue;
      _results.push(exports[func] = include[func]);
    }
    return _results;
  }
};

fs.readdirSync('./fields/').forEach(collectExports);

这使得模块的行为更像在Python中:

var text = new Fields.Text()
var checkbox = new Fields.Checkbox()

如果你在example ("app/lib/*.js")目录中包含了*.js的所有文件:

在app/lib目录下

example.js:

module.exports = function (example) { }

示例- 2. - js:

module.exports = function (example2) { }

在目录app中创建index.js

index.js:

module.exports = require('./app/lib');

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

var glob = require( 'glob' )
  , path = require( 'path' );

glob.sync( './routes/**/*.js' ).forEach( function( file ) {
  require( path.resolve( file ) );
});

可以使用:https://www.npmjs.com/package/require-file-directory

要求所选文件只有名称或全部文件。 不需要绝对路径。 易于理解和使用。