CNode

后端里,怎么一次性导入文件夹内所有的文件

问答
JJosh119891发布于7 年前最后回复7 年前3 回复5595 浏览0 收藏

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

查看回复

回复 (3)

A
axetroy#1·7 年前
  1. 读取文件夹
  2. 遍历文件名, 过滤非 .js/.json 文件
  3. require(文件路径)

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

L
LuckyHH#2·7 年前
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)
        }
      })
    })
  })
}
J
Josh119891#3·7 年前
引用 axetroy1. 读取文件夹 2. 遍历文件名, 过滤非 .js/.json 文件 3. require(文件路径) 顺便说一句, 为什么要玩这种黑魔法?

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

参与回复
登录后即可参与回复。登录