Прочтите текстовый файл, запустите текстовый фильтр с помощью модуля Node и запишите в новый текстовый файл, используя NodeJS - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь открыть файл, запустить фильтр из модуля NPM, а затем записать результат в виде нового файла .txt.

Он работает, но вывод пустой. Требуется ли потоковая передача файла в процессе чтения и записи?

Вот код:

async function main() {
    const fs = require('fs');
    const parBuild = require('paragraph-builder');
    const util = require('util');
    const filename = "Guardian-Yvette-TextBlock.txt";
    var data;

    //const readFile = util.promisify(fs.readFile);

    fs.readFile('Guardian-Yvette-TextBlock.txt', 'utf8', function(err, text) {
      if (err) throw err;
      console.log(text);
  });

    const sourceTXT = await readFile(filename, 'utf8')
      .then((text) => {
        console.log('TXT File:', text);
      })
      .catch((err) => {
        console.log('Error', err);
      });

    var resultText = parBuild.toString(sourceTXT);

    const writeTXTFile = util.promisify(fs.writeFile);
    await writeTXTFile(filename + "-para.txt", resultText, 'utf-8');
    console.log('Paragraph TXT file created and written to local directory');
  }
  main().catch(console.error);

Это текстовые файлы (.txt) из газетной статьи, над которой я работаю с.

https://friendly-mccarthy-005993.netlify.app/

1 Ответ

1 голос
/ 17 июня 2020

Раскомментируйте это //const readFile = util.promisify(fs.readFile); в строке 8 и выберите более чистое решение:

<!-- language: javascript -->
const fs = require('fs');
const parBuild = require('paragraph-builder');
const util = require('util');

async function main() {
  const filename = "Guardian-Yvette-TextBlock.txt";

  const readFile = util.promisify(fs.readFile);
  const content = await readFile(filename, 'utf8')

  const resultText = parBuild.toString(content);

  const writeFile = util.promisify(fs.writeFile);
  await writeFile(filename + "-para.txt", resultText, 'utf-8');
  console.log('Paragraph TXT file created and written to local directory');
}

try {
  main()
} catch (error) {
  console.error(error);
}
...