后端里,怎么一次性导入文件夹内所有的文件
发布于 4 年前 作者 Josh119891 4776 次浏览 来自 问答

后端,近期重构,想着怎么可以一次性导入文件夹内所有文件 例如数据库的models,schema 百度过,找到个轮子,叫require-all能满足需求, 但想看看大佬们有没更好的推荐??

3 回复
  1. 读取文件夹
  2. 遍历文件名, 过滤非 .js/.json 文件
  3. require(文件路径)

顺便说一句, 为什么要玩这种黑魔法?

function filesWalker(dir, done) {
  let results = []
  fs.readdir(dir, function (err, list) {
    if (err) return done(err)
    let 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()) {
          filesWalker(file, function (err, res) {
            results = results.concat(res)
            if (!--pending) done(null, results)
          })
        } else {
          results.push(file)
          if (!--pending) done(null, results)
        }
      })
    })
  })
}

@axetroy 不一定用的上,只是看到webpack可以这样做,,想着后端这样做,好像也不错

回到顶部