nestjs 中请求 fastapi 获取响应值
背景
项目需求, 在 nestjs 中请求 fastapi 后端服务, 获取响应值, 再进行一些业务处理.
使用
可以使用 nestjs 的 http 模块
官方文档: https://docs.nestjs.com/techniques/http-module
实例
const fd = new FormData()
fd.append('file', file.buffer, file.originalname)
fd.append('oss_path', ossPath)
fd.append('size', file.size)
const httpService = new HttpService()
const res = await httpService
.post(environment.ApiServers.vmp_api_upload, fd, { headers: fd.getHeaders() })
.toPromise()
if (res.data.code == StatusCode.SuccessCode && res.status == EHttpStatus.Success) {
return res.data.data
} else {
throw new HttpErrorResponse(`文件上传错误, 异常信息: ${res.data}`)
}
问题点记录
ts 访问 py 后端时, 出现了 There was an error parsing the body 异常.
通过 py 端打印 request 参数, 发现其数据格式不正确, 没有正确的使用 header 头(当然, 上面的代码是正确的, 这里只记录爬坑过程)
然后通过, nestjs 文档, 看到是基于 npm axios 构建, 通过查阅github库: https://github.com/axios/axios#request-config
发现了 正确的 form 表单 使用方法.