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

NodeJS开发Azure Function生成Token无法返回响应体问题求助

问题根因

你的代码问题在于Azure Function入口函数声明为async,但你使用的request库是基于回调的异步实现,函数不会等待回调执行完成就提前结束了,context.res的赋值操作发生在函数已经返回响应之后,因此返回的响应体为空。

修复方案

方案1:搭配context.done()使用回调模式,移除async声明

// 去掉async声明,适配回调处理逻辑
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');

var request = require('request');
var options = {
    'method': 'POST',
    'url': 'https://abc.onbmc.com/api/jwt/login',
    'headers': {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Connection': 'keep-alive'
    },
    form: {
        'username': 'abc@xyz.com',
        'password': 'password123'
    }
};
request(options, function (error, response) {
    if (error) {
        context.res = {
            status: 500,
            body: error.message
        };
        return context.done();
    }
    context.res = {
        body: response.body
    };
    // 处理完成后调用done通知Azure Function可以返回响应
    context.done();
})
}

方案2:将请求Promise化,搭配async/await使用

推荐使用这种方案,代码可读性更高,适配当前async声明:
首先安装支持Promise的请求依赖:
npm install request-promise
修改后的代码:

const rp = require('request-promise');
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');

var options = {
    'method': 'POST',
    'url': 'https://abc.onbmc.com/api/jwt/login',
    'headers': {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Connection': 'keep-alive'
    },
    form: {
        'username': 'abc@xyz.com',
        'password': 'password123'
    },
    resolveWithFullResponse: true
};
try {
    const response = await rp(options);
    context.res = {
        body: response.body
    };
} catch (error) {
    context.res = {
        status: 500,
        body: error.message
    };
}
}

额外注意事项

  • 生产环境不要将账号密码硬编码在代码中,建议通过Azure Function的应用配置存储敏感信息,调用时通过process.env.配置项名读取即可。
  • request库已经停止官方维护,长期使用建议替换为axios或者Node.js原生fetchAPI。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:45:02