节点js中的Transform流可以读取字符串,但是以对象模式写入吗?

时间:2019-01-18 13:42:06

标签: node.js stream

我正在尝试使转换流以对象模式写入,但仍在读取字符串。可能吗?文档说,对于双工流,我可以分别设置readObjectObjectMode和writableObjectMode,但是以某种方式它对我不起作用。 当我对_flush中的对象使用回调时,出现错误:无效的非字符串/缓冲区块

我做错了什么还是在转换流中不起作用?

这是我的代码:

class stream extends Transform {
  private logs: { name: string, errors: any[] };

  constructor() {
    super({ writableObjectMode: true });
    this.logs = { name: this.tableName, errors: [] };
  }

  _transform(chunk, encoding, callback) {
    // stuff here
    callback();
  }

  _flush(callback) {
    //here I get error
    callback(undefined, this.logs);
  }
}

1 个答案:

答案 0 :(得分:0)

我找到了答案。我需要设置{visibleObjectMode:true},因为这实际上是我正在使用的转换流的可读端,不可写。