Как записать информацию в файл Node.js?

121
25 декабря 2019, 09:20

У меня есть папка с папками, в каждой из них лежит несколько markdown файлов:

Мне нужно пройтись по этим файлам и на выходе получить документ в котором будут записаны все заголовки #Title из этих маркдаунов. В файле должна быть такая структура :

   folderName1
      fileName
        Title1
        Title2
    folderName2
      fileName
        Title3
        Title5
    ...

Я написал скрипт :

var {
  lstatSync,
  readdirSync,
  readFileSync,
  statSync,
  createWriteStream
} = require("fs");
var path = require("path");
const isDirectory = source => lstatSync(source).isDirectory();
function writeDoc(dir, fileTypes) {
  function walkDir(currentPath) {
    let files = readdirSync(currentPath);
    const CreateFiles = createWriteStream("./file.txt", {
      flags: "a" //flags: 'a' preserved old data
    });
    const headingsRegex = /^#(?!#)(.*)/gm;
    for (let i in files) {
      var curFile = path.join(currentPath, files[i]);
      if (isDirectory(curFile)) {
        CreateFiles.write("FOLDER_NAME-->" + curFile.split("/").pop() + "\r\n");
        walkDir(curFile);
      } else if (
        statSync(curFile).isFile() &&
        fileTypes.indexOf(path.extname(curFile)) != -1
      ) {
        CreateFiles.write("FILE_NAME--->" + curFile.split("/").pop() + "\r\n");
        const fileData = readFileSync(curFile, "utf8");
        let match = headingsRegex.exec(fileData);
        while (match != null) {
          CreateFiles.write("HEADER--->" + match[1] + "\r\n");
          match = headingsRegex.exec(fileData);
        }
      }
    }
  }
  walkDir(dir);
}
writeDoc("./templates", [".md"]);

Который рекурсивно проходить по папкам и вытягивает заголовки но на выходе у меня в файл записываеться не то что я ожидаю : В чем моя ошибка ?

READ ALSO
typescript: application is not a constructor

typescript: application is not a constructor

Когда пытаюсь создать экземпляр класса, вылетает ошибка

133
2 фильтра на массив в 1 функции VUE JS

2 фильтра на массив в 1 функции VUE JS

Хотела на массив повесить 2 фильтраЛогика такая: 1 - фильтр для поиска

119
Как рекурсивно вывести список файлов в папке?

Как рекурсивно вывести список файлов в папке?

Как вывести список файлов в папке рекурсивно, тоесть если в папке есть еще одно папка то вывести файлы для нее и тдНапример

134