我如何预先添加到转换流?

时间:2017-10-14 06:17:39

标签: node.js stream

虽然我的示例使用Trumpet,但此问题对任何双工流都有效。

我使用小号将一大块html添加到正文中,但我似乎无法找到有关如何预先添加到双工流的参考。

我从一个文件中读取,然后将流管道传递给它自己,这有效,但随后流不会结束。

  fs.readFile(headerPath, 'utf8', (err, header) => {
    const stream = node.createStream();

    stream.write(header);
    stream.pipe(stream);
    return stream.on('end', () => {
      stream.end('');
    });
  });

1 个答案:

答案 0 :(得分:1)

您可以使用可写的pipe事件作为前缀,该事件也在双工和转换流中发出。

以下是process.stdout(这是Duplex流实例)的示例:

process.stdout.on('pipe', function() {
  // Prepend some text
  this.write('header');
});

fs.createReadStream(file)
.pipe(process.stdout);