使Node.js流信息不可枚举

时间:2016-02-09 18:54:59

标签: javascript node.js node.js-stream

在尝试console.log()时,我试图从继承自的类中省略此类数据:

asset: 
   PassThrough {
     filename: 'old_man',
     data: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 f0 00 f0 00 00 ff db 00 43 00 05 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0c 08 07 07 07 07 0f 0b 0b 09 ... >,
     originalLocation: '/path/to/lib/image.jpg',
     contentType: [Getter/Setter],
     _readableState: 
      ReadableState {
        objectMode: false,
        highWaterMark: 16384,
        buffer: [],
        length: 0,
        pipes: null,
        pipesCount: 0,
        flowing: null,
        ended: false,
        endEmitted: false,
        reading: false,

......等等。

通常情况下,我会尝试以下方式:

Object.defineProperty(self, 'PassThrough', {
    configurable: true,
    writable: true,
    enumerable: false
})

但是因为PassThrough实际上并不是对象的属性,所以它不起作用。如何隐藏console.log()的流信息?

(免责声明:我确实意识到它的设计,隐藏它可能是一个坏主意;)

1 个答案:

答案 0 :(得分:0)

console.log回到util.inspect。如果您可以完全控制该类,那么您所要做的就是使用自定义逻辑实现inspect。请参阅此处的文档:https://nodejs.org/api/util.html#util_util_inspect_object_options