Node.js Stream - 缓冲区到字符串给出 [object Object]

dma*_*man 5 javascript stream node.js

我希望能够过滤输出。但是,我在从缓冲区转换为字符串时遇到问题。console.log(JSON.stringify(obj.toString()));不断给我[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)
}
Run Code Online (Sandbox Code Playgroud)

spe*_*ufo 4

through2.obj创建一个对象流(或对象模式下的流)。对象通过对象流流动,而不是缓冲区。你得到的不是一个缓冲区,而是一个对象obj。这就是为什么它的toString方法给出[object Object]. 也许您正在寻找的东西在obj.contents

  • 并在缓冲区上调用“toString”? (2认同)