Node.js 使用循环批量创建文件到当前目录中的每个文件夹

Node.js batch create files to every folders in current directory with loop

我在当前目录下有子20个目录。我想为当前目录中的每个文件夹创建 'README.md' 。这是我到目前为止尝试过的,

const fs = require('fs').promises;
const path = require('path');

async function readDirectory(filePath) {
  try {
    const data = await fs.readdir(filePath);
    data.forEach(async file => {
      fs.writeFile('README.md', file);
    });
  } catch (err) {
    console.log(err.message);
  }
}

readDirectory(path.resolve(__dirname));

但结果不是我想要的。有什么建议吗?

首先writeFile参数应该是你想要的文件的完整路径create/write

fs.writeFile( file, data, options, callback )

所以我稍微修改了你的代码

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

async function readDirectory(filePath) {
  const data = await fs.readdirSync(filePath);
  const folders = data.filter((item) => fs.lstatSync(item).isDirectory());

  folders.map((folder) => {
    const subFilePath = path.join(filePath, `/${folder}` + `/README.md`);
    fs.writeFile(subFilePath, '', (err) => {
      if (err) console.log(err);
      else {
        console.log(`File ${subFilePath} created`);
      }
    });
  });
}

readDirectory(path.resolve(__dirname));