整理一下遍历文件夹所有文件内容的几个方法
Glob
const glob = require('glob');
const path = require('path');
const fs = require('fs-extra');
function getDirectories(src, callback) {
  glob(src + '/**/*', callback);
}
getDirectories(srcPath, async function (err, res) {
  if (err) {
    console.log('Error', err);
  } else {
    for (let index = 0; index < res.length; index++) {
      const element = res[index];
      // 这段代码是检查是否文件夹的
      if (!fs.lstatSync(element).isDirectory()) {
        await readFile(element);
      }
    }
  }
});
async function readFile(params) {
  return fs.readFile(params, 'utf8').then((e) => {
    console.log('这是读取的文件内容', e);
    return e;
  });
}
原生 fs
简单实现
 function traverseDir(dir) {
   fs.readdirSync(dir).forEach(file => {
     let fullPath = path.join(dir, file);
     if (fs.lstatSync(fullPath).isDirectory()) {
        console.log(fullPath);
        traverseDir(fullPath);
      } else {
        console.log(fullPath);
      }  
   });
 }
并行遍历文件夹
var fs = require('fs');
var path = require('path');
var walk = function(dir, done) {
  var results = [];
  fs.readdir(dir, function(err, list) {
    if (err) return done(err);
    var pending = list.length;
    if (!pending) return done(null, results);
    list.forEach(function(file) {
      file = path.resolve(dir, file);
      fs.stat(file, function(err, stat) {
        if (stat && stat.isDirectory()) {
          walk(file, function(err, res) {
            results = results.concat(res);
            if (!--pending) done(null, results);
          });
        } else {
          results.push(file);
          if (!--pending) done(null, results);
        }
      });
    });
  });
};
串行遍历文件夹
var fs = require('fs');
var path = require('path');
var walk = function(dir, done) {
  var results = [];
  fs.readdir(dir, function(err, list) {
    if (err) return done(err);
    var i = 0;
    (function next() {
      var file = list[i++];
      if (!file) return done(null, results);
      file = path.resolve(dir, file);
      fs.stat(file, function(err, stat) {
        if (stat && stat.isDirectory()) {
          walk(file, function(err, res) {
            results = results.concat(res);
            next();
          });
        } else {
          results.push(file);
          next();
        }
      });
    })();
  });
};
使用
walk(process.env.HOME, function(err, results) {
  if (err) throw err;
  console.log(results);
});
后记
这儿有很多优秀的方法