You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API解析Pub/Sub消息报错,如何构造正确的测试假消息数据?

问题分析

你的错误根源在于Google Pub/Sub的消息格式要求message.data是经过Base64编码的字符串,而你直接传入了原始JSON对象。当parseMessage方法执行message.data.toString()时,对象会被转为[object Object],对这个字符串做Base64解码后得到的内容完全不是合法JSON,自然触发解析错误。

正确的假Pub/Sub消息构造步骤
  • 第一步:把你要传递的核心数据(即data里的内容)转成JSON字符串:
{"from": "no-reply@example.com", "to": "user@example.com", "subject": "test", "body": "test"}
  • 第二步:将这个JSON字符串做Base64编码,得到编码后的字符串:
eyJmcm9tIjoibm8tcmVwbHlAZXhhbXBsZS5jb20iLCJ0byI6InVzZXJAZXhhbXBsZS5jb20iLCJzdWJqZWN0IjoidGVzdCIsImJvZHkiOiJ0ZXN0In0=
  • 第三步:把这个Base64字符串放到请求的message.data字段中,替换原来的JSON对象。
正确的curl请求示例
curl -X 'POST' \
  'http://localhost:3000/posts' \
  -H 'Content-Type: application/json' \
  -d '{
  "message": {
    "data": "eyJmcm9tIjoibm8tcmVwbHlAZXhhbXBsZS5jb20iLCJ0byI6InVzZXJAZXhhbXBsZS5jb20iLCJzdWJqZWN0IjoidGVzdCIsImJvZHkiOiJ0ZXN0In0="
  }
}'
额外优化建议

你的错误提示里'Parse Error: ' + message会把对象转为[object Object],不利于排查问题,可以改成JSON序列化:

throw new BadRequestException(
  'Parse Error: ' + JSON.stringify(message),
);

内容的提问来源于stack exchange,提问作者Alpin Cleopatra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:15:46