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

Azure HTTP触发Durable Functions返回非JSON对象的问题咨询

解决Azure Durable Functions HTTP触发器返回Object而非JSON的问题

问题场景

以下是我编写的Azure HTTP触发Durable Functions代码:

const df = require("durable-functions");

module.exports = async function (context, req) {
    const client = df.getClient(context);
    
    context.log(`Function Name = '${req.params.functionName}'.`);
    context.log(`Body = '${req.body}'.`);
    const instanceId = await client.startNew(req.params.functionName, undefined, req.body);

    context.log(`Started orchestration with ID = '${instanceId}'.`);

    return client.createCheckStatusResponse(context.bindingData.req, instanceId);
};

使用Postman或Reqbin测试时,返回的始终是object字符串,而非预期的JSON格式响应。此前查阅相关问题但未解决,现寻求原因及解决办法。

问题原因

  1. 请求对象参数错误:createCheckStatusResponse方法需要传入函数的原始req对象,而代码中用了context.bindingData.req——这是绑定内部的请求数据结构,并非完整的请求对象,导致响应序列化异常,返回object。
  2. 请求头未正确配置:测试时如果没设置Content-Type: application/json,Azure Functions无法正确解析请求体,间接影响响应的生成格式。
  3. 日志输出误导:context.log中直接拼接req.body会触发对象的toString()方法,打印出[object Object],容易让开发者误以为是响应的问题,但本质是日志输出方式不对。

解决办法

1. 修正响应生成的请求参数

把context.bindingData.req替换为函数入参的req,这是createCheckStatusResponse要求的正确参数:

return client.createCheckStatusResponse(req, instanceId);

2. 确保测试请求的头信息正确

在Postman或Reqbin中发送请求时,务必添加Content-Type: application/json请求头,同时保证请求体是合法的JSON格式。

3. 优化日志输出(可选)

如果要在日志中查看请求体的具体内容,用JSON.stringify()序列化对象,避免打印出无意义的[object Object]:

context.log(`Body = ${JSON.stringify(req.body)}`);

修改后的完整代码

const df = require("durable-functions");

module.exports = async function (context, req) {
    const client = df.getClient(context);
    
    context.log(`Function Name = '${req.params.functionName}'.`);
    context.log(`Body = ${JSON.stringify(req.body)}`);
    const instanceId = await client.startNew(req.params.functionName, undefined, req.body);

    context.log(`Started orchestration with ID = '${instanceId}'.`);

    return client.createCheckStatusResponse(req, instanceId);
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:26:02