读取 txt 文件,运行 使用 Node 模块的文本过滤器并使用 NodeJS 写入新的 .txt 文件

Read txt file, run text filter using a Node module and write to a new .txt file using NodeJS

我正在尝试打开一个文件,运行 来自 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/

在第 8 行取消注释此 //const readFile = util.promisify(fs.readFile); 并检查更清洁的解决方案:

<!-- 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);
}