You need to enable JavaScript to run this app. Node.js中如何通过bodyparser将req.body存入指定data对象?
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何通过bodyparser将req.body存入指定data对象?

修正工作流接口的入参传值

由于已经集成了body-parser中间件,req.body会自动将POST请求的JSON/表单格式请求体解析为可直接访问的JS对象,直接将req.body.input赋值给data字段即可。原代码存在对象未闭合的语法问题,修正后的可运行代码如下:

// 增加基础入参校验,避免参数缺失触发下游调用报错
const workflowInput = req.body?.input;
if (!workflowInput) {
  return res.status(400).json({ msg: "缺少必填的input参数" });
}

stub.PostWorkflowResults(
  {
    workflow_id: "Demographics",
    inputs: [
      // 直接将解析好的input值传入data字段
      { data: workflowInput }
    ]
  },
  metadata,
  (err, response) => {
    if (response) {
      console.log(response);
    } else {
      console.log(err);
    }
  }
);
req.body.state的存储实现

根据实际业务的存储时效要求,可选择对应方案:

  • 单请求链路复用:直接在当前路由的作用域内声明变量接收值即可,写法为const currentState = req.body?.state;,该方式为进程内存级临时存储,服务重启、多实例部署时数据会丢失,无法跨请求共享。
  • 跨请求持久化存储:
    • 轻量低并发场景:使用Node.js内置fs模块,将state以JSON结构读写到本地持久化文件,关联用户ID/工作流ID做键值映射
    • 高并发场景:将state存入Redis缓存,设置合理的过期时间,避免无效数据占用存储空间
    • 需要长期留存的强一致场景:将state和对应的工作流执行记录一起写入业务数据库,支持后续审计、回溯
  • 随工作流调用透传:如果state不需要长期存储,只是需要跟随当前工作流请求传递给下游,直接将state值合并到第二个metadata参数对象中即可,只要和下游工作流接口提前约定好字段结构即可,不需要额外开发存储逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 21:36:04