Node.Js Through2-修改流

Node.Js Through2- modifying stream

我正在使用 through2 试验 Node.js 流。我有一个流,它是一个 index.html 文件,我试图逐行修改 index.html 内容,在每一行上添加一个 -------。我有:

  indexHTML
      .pipe(through2.obj(function(obj, enc, next) {
        blah = obj.contents.toString().split('\n');
        blah.forEach(function(element) {
            this.push("-------");
            this.push(element):
        });
        next();
      })).pipe(process.stdout);

我目前遇到的问题 this.push()blah.forEach() 数组方法中不可用。关于如何实现修改 index.html 流的任何建议?

如果您想保留 forEach() 而不是常规的 for 循环,forEach() 接受 second argument 这是所需的 this 上下文:

blah.forEach(function(element) {
  this.push("-------");
  this.push(element):
}, this);

您也可以始终使用更通用的 "self" 解决方法:

var self = this;
blah.forEach(function(element) {
  self.push("-------");
  self.push(element):
});