Javascript Node.js Stream-字符串缓冲区提供[object]
我希望能够过滤输出。但是,我在从缓冲区转换为字符串时遇到了一个问题<代码>console.log(JSON.stringify(obj.toString())一直给我Javascript Node.js Stream-字符串缓冲区提供[object],javascript,node.js,stream,Javascript,Node.js,Stream,我希望能够过滤输出。但是,我在从缓冲区转换为字符串时遇到了一个问题console.log(JSON.stringify(obj.toString())一直给我[object object]我不能用。如何将缓冲区转换为字符串,以便将内容过滤到标准输出 //inject 'bower and javascript' files or just 'javascript' files function injectStream(sourceStream, filesStream) { sourc
[object object]
我不能用。如何将缓冲区转换为字符串,以便将内容过滤到标准输出
//inject 'bower and javascript' files or just 'javascript' files
function injectStream(sourceStream, filesStream) {
sourceStream
.pipe(injector(filesStream, { ignorePath: 'app', addRootSlash: false }))
.pipe(gulp.dest(INDEX_PATH_PARENT))
.pipe(through2.obj(function(obj, enc, next) {
console.log(JSON.stringify(obj.toString()));
this.push(obj.contents);
next();
})).pipe(process.stdout)
}
through2.obj
生成对象流(或对象模式下的流)。通过对象流的是对象流,而不是缓冲区。您得到的不是缓冲区,而是对象obj
。这就是为什么它的toString
方法给出[object]
。也许您要查找的是obj.contents
?奇怪的是console.log(obj.contents)
给了我
并在缓冲区上调用toString
?console.log(obj.contents.toString())代码>工作。然而,它一下子给了我全部内容。我希望逐行进行,因为我认为它是使用next()
进行迭代的。您应该知道一些使用节点流的方法。还有substack的介绍。可能是对象本身的属性和从原型继承的属性之间有一个ditinction。查看obj.prototype
或obj.\uuuu proto\uuuu