我正在使用这个很棒的模块:protobuf.js用于 node.js 中的协议缓冲区。
我有 int64 字段类型(由 google-protocol 支持),我正在尝试将其打印到屏幕上。
该行:
console.log(MessageTypeAck.decode(message));
打印以下内容:
{ trace:
[ { topic: 'Genesis', partition: 0, offset: [Object] },
{ topic: 'DataManager', partition: 0, offset: [Object] } ],
sourceModuleName: 'DataManager',
sourceModuleID: 10040 }
(偏移字段打印为[Object]
)和行:
console.log(MessageTypeAck.decode(message).trace[1].offset.toString());
印刷:
9217
(实际值)。为什么第一次调用也不调用 Long 对象的 toString() ?
为什么所需的输出将是:
{ trace:
[ { topic: 'Genesis', partition: 0, offset: 9217 },
{ topic: 'DataManager', partition: 0, offset: 9217 } ],
sourceModuleName: 'DataManager',
sourceModuleID: 10040 }
我发现了这个问题,但据我所知,我不应该做一些特别的事情来得到它..
我也发现了这个- 我的版本(npm list protobufjs)返回protobufjs@5.0.1
有任何想法吗?