我有一个卡夫卡生产者和消费者。
生产者这样做:
const returnMessage = {
prop1: 'some string',
prop2: 'another string',
prop3: nestedObject
};
console.log(JSON.stringify(returnMessage))
await stream.writeToStream(JSON.stringify(returnMessage));
消费者这样做:
incomingStream.forEach(
message => {
console.log(message.value)
let messageObject = message.value;
...other stuff...
}
);
现在,在生产者端,返回消息始终记录为正确的字符串,一切都很好。但是,在消费者方面,首先,message.value是可以从中解析JSON的正确字符串,但是在随后的请求中,它以'[object Object]'出现。如果
我觉得这里缺少重要的东西...如果您有任何见解,请提供帮助。
答案 0 :(得分:0)
好的,我知道了。 incomingStream.forEach
发生在路由内部,而流在控制器级别被实例化。我通过将forEach
移到控制器级别并使其在每条消息上发出已解析的消息,然后订阅了路由内的事件来解决了该问题。