嗨,我有两个服务,一个在golang,另一个在nodejs

《金刚一号》正在为卡夫卡制作以下代码

var network bytes.Buffer        
enc := gob.NewEncoder(&network)
enc.Encode(product)
produce_to_kafka("add", network.Bytes())

节点正在使用以下内容

await consumer.run({
  eachMessage: async ({ topic, partition, message, heartbeat }) => {
      console.log({
          key: message.key.toString(),
          value: new Buffer.from(message.value, "binary").toString('ascii'),
          headers: message.headers,
      })
  },
})

正如你们所看到的,我试着用缓冲区进行投射。使用ascii、二进制和base64,但未能成功完成。

这是控制台。日志我进入nodejs

[categories]   key: 'add',
[categories]   value: '\x7FO\x7F\x01\x03\x01\x01\x07Product\x01\x7F\x02\x00\x01\x0F\x01\x04Name\x01\f\x00\x01\x02Id\x01\f\x00\x01\x07Storeid\x01\f\x00\x01\tStoreProd\x01\f\x00\x01\x05Price\x01\b\x00\x01\bDiscount\x01\b\x00\x01\x05Brand\x01\f\x00\x01\n' +
[categories]     'Categories\x01\x7F\x04\x00\x01\x04Tags\x01\x7F\x04\x00\x01\bLocation\x01\f\x00\x01\x07InStock\x01\x04\x00\x01\n' +
[categories]     'ExpiryDate\x01\f\x00\x01\tTotalSold\x01\x04\x00\x01\x11LastStockAddition\x01\f\x00\x01\x04Cost\x01\x04\x00\x00\x00\x16\x7F\x03\x02\x01\x01\b[]string\x01\x7F\x04\x00\x01\f\x00\x00i\x7F\x02\x01\x04Stng\x01\x05Stngp\x01\x01t\x01\x06tStngp\x01@\x01@\x01\x06String\x01\x01\x05askdl\x01\x01\x05asdas\x01\x06String\x01\x04\x01\x102021-10-03 12:13\x01\x06\x01\x102021-10-03 12:13\x01\b\x00',
[categories]   headers: {}
[categories] }

此外,我在golang中有一个相同主题的消费,可以使用以下代码成功地将其解析回struct

var network bytes.Buffer;
network.WriteString(string(ev.Value))
dec := gob.NewDecoder(&network) 
var q model.Product
err = dec.Decode(&q)

你能分享一些资源或语法吗?我如何在nodejs中做到这一点