2015-02-08 46 views
1

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

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流的任何建议?

回答

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