使用节点 js 将代码从 fs 更改为 fs-extra

changing code from fs to fs-extra using node js

我用var fs= require("fs").promises;

写了一段代码

var fs= require("fs").promises;

async function checkFileLoc(folderPath, depth) {
  depth -= 1;
  let files = await fs.readdir(folderPath);
  files = await Promise.all(
    files.map(async (file) => {
      const filePath = path.join(folderPath, file);
      const stats = await fs.stat(filePath);
      if (stats.isDirectory() && depth > 0) {
        return checkFileLoc(filePath, depth);
      } else if (stats.isFile()) return filePath;
      else return null;
    })
  );
  return files
    .reduce((all, folderContents) => all.concat(folderContents), [])
    .filter((e) => e != null);
}

然后我在我的项目中安装 fs-extra 包并将 var fs=require("fs"); 替换为 var fse=require("fs-extra"); 并像这样更改我的代码

var fse=require("fs-extra");

async function checkFileLoc(folderPath, depth) {
  depth -= 1;
  let files = await fse.readdir(folderPath);
  files = await Promise.all(
    files.map(async (file) => {
      const filePath = path.join(folderPath, file);
      const stats = await fse.stat(filePath);
      if (stats.isDirectory() && depth > 0) {
        return checkFileLoc(filePath, depth);
      } else if (stats.isFile()) return filePath;
      else return null;
    })
  );
  return files
    .reduce((all, folderContents) => all.concat(folderContents), [])
    .filter((e) => e != null);
}

当我使用 fs 时,我得到了想要的输出,有人告诉我 fs-extra 是提前的,然后 fs 而你所要做的就是替换 fs fse 我的代码无法正常工作 我犯错的任何解决方案?

FilePath=
[/home/work/test/abc.html
/home/work/test/index.js
/home/work/test/product.js
]
filePath=[]

我在使用 fs-extra

时没有输出

我试图弄清楚如果我使用 var fse= require("fs-extra");

我必须做出哪些改变

所以我的代码将如下所示

var fse=require("fs-extra");

async function checkFileLoc(folderPath, depth) {
  depth -= 1;
  let files = fse.readdirSync(folderPath);
  files = await Promise.all(
    files.map(async (file) => {
      const filePath = path.join(folderPath, file);
      const stats = fse.statSync(filePath);
      if (stats.isDirectory() && depth > 0) {
        return checkFileLoc(filePath, depth);
      } else if (stats.isFile()) return filePath;
      else return null;
    })
  );
  return files
    .reduce((all, folderContents) => all.concat(folderContents), [])
    .filter((e) => e != null);
}

我更换了我的

  • var fs=require("fs");var fse=require("fs-extra");
  • let files = await fs.readdir(folderPath);let files = fs.readdirSync(folderPath);
  • const stats = await fs.stat(filePath);const stats = fs.statSync(filePath);

现在我得到了我想要的输出