Node.Js Through2-修改流

时间:2015-02-08 03:48:50

标签: node.js stream node.js-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流的任何建议?

1 个答案:

答案 0 :(得分:2)

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

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

您还可以始终使用更一般的“自我”解决方法:

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