Node.js Azure函数Axios调用问题:动态传参与响应转发
解决方案
完整修改后的代码
const axios = require("axios"); module.exports = async function (context) { // 从请求体提取appUser参数 const { appUser } = context.req.body; if (!appUser) { context.res = { status: 400, body: "缺少必填参数:appUser" }; return; } const data = { appUser }; const headers = { Authorization: "Basic WUFNkVQRDg9" }; try { const response = await axios.post( "https://tegossl/GetAppUser?company=Enva", data, { headers } ); // 把第三方服务的响应返回给客户端 context.res = { status: response.status, body: response.data, headers: { "Content-Type": "application/json" } }; } catch (err) { console.error(err); // 处理错误并返回给客户端 context.res = { status: err.response?.status || 500, body: err.response?.data || "服务器内部错误" }; } };
1. 动态获取Postman传入的appUser参数
- Node.js版Azure Functions的入口函数必须接收
context参数,请求相关内容都存在context.req对象里。 - 直接从
context.req.body解构出appUser,替换原硬编码值即可。注意要在Postman里把请求的Content-Type设为application/json,否则无法正确解析请求体。 - 增加参数校验逻辑,如果请求体里没有
appUser,直接返回400错误提示客户端缺少必填参数。
2. 将第三方服务的响应返回给客户端
- 用
async/await替代原有的then/catch写法,逻辑更直观,同时避免回调嵌套问题。 - 请求成功时,通过
context.res设置响应的状态码、内容和头部,把第三方服务返回的内容直接传给客户端。 - 请求失败时,除了在控制台打印错误日志,还要把错误信息返回给客户端:如果第三方服务返回了错误响应,就用它的状态码和内容;没有的话就返回500通用服务器错误。
内容的提问来源于stack exchange,提问作者Yamen
相关产品推荐
相关产品推荐

