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

如何向Firebase OnRequest函数发送payload及解决req.body为空问题

问题排查与解决方案

1. 修复日志打印语法错误

你当前的日志写法本身存在问题,会直接导致无法打印req.body内容,极易误导你判断问题:

// 错误写法:JSON.stringify第一个参数为固定字符串,第二个参数作为replacer不会生效,只会输出"FELOOOOOO"
console.log(JSON.stringify("FELOOOOOO", req.body));

修改为正确写法后再验证:

// 写法1:分开打印标识和请求体
console.log("FELOOOOOO", JSON.stringify(req.body));
// 写法2:序列化完整对象
console.log(JSON.stringify({ msg: "FELOOOOOO", body: req.body }));

2. 校验Postman请求配置

参考你提供的请求截图:
Postman请求截图
需确认两项配置:

  • 请求头必须携带Content-Type: application/json,否则express.json()不会触发解析
  • Body选项卡必须选择raw格式,且右侧下拉选择JSON,如果使用form-data/x-www-form-urlencoded格式,需要额外新增解析中间件:
app.use(express.urlencoded({ extended: true, limit: "10kb" }));

3. 排查自定义中间件异常

你路由中引入的_accessToken自定义中间件大概率是问题根源:

  • 检查中间件内部是否调用了next(),未调用会导致请求无法传递到后续路由处理逻辑
  • 检查中间件是否提前消费了请求体流(比如自行监听data/end事件),会导致express.json()无法读取到请求体内容
  • 临时移除_accessToken中间件直接测试路由,验证是否能正常拿到req.body,排除中间件影响

4. 兼容低版本Express

如果你使用的Express版本低于4.16.0,内置的express.json()解析器不存在,需要放开你注释的body-parser依赖:

const bodyParser = require("body-parser");
// 替换原有express.json()配置
app.use(bodyParser.json({limit: "10kb"}));
app.use(bodyParser.urlencoded({ extended: true, limit: "10kb" }));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:06