nestjs - 如何从nestjs中的URL将数据下载到JSON文件中?
问题描述
我正在尝试从 Nestjs 中的 URL 将数据下载到 JSON 文件中,但我不知道该怎么做。
下面是我参考这个答案的控制器功能。
export class DataController {
constructor(private readonly httpService: HttpService) { }
@Get()
async download(@Res() res) {
const writer = createWriteStream('user.json');
const response = await this.httpService.axiosRef({
url: 'https://api.github.com/users/prasadg',
method: 'GET',
responseType: 'stream',
headers: {
'Content-Type': 'application/json',
}
});
response.data.pipe(writer); <--- Error here: Property 'pipe' does not exist on type 'unknown'.
return new Promise((resolve, reject) => {
writer.on('finish', resolve);
writer.on('error', reject);
});
}
正如我上面提到的,它显示错误
错误 TS2339:“未知”类型上不存在属性“管道”
预期结果:我想将 json 数据写入服务器上我的文件夹中的文件 (user.json)。
我该如何解决这个问题?
解决方案
这只是类型错误,请通过以下命令确保 axios 在您的项目中:
npm i axios
然后只需在响应变量中声明类型
@Get()
async download() {
const writer = createWriteStream('user.json');
// response variable has to be typed with AxiosResponse<T>
const response: AxiosResponse<any> = await this.httpService.axiosRef({
url: 'https://api.github.com/users/prasadg',
method: 'GET',
responseType: 'stream',
});
response.data.pipe(writer);
return new Promise((resolve, reject) => {
writer.on('finish', resolve);
writer.on('error', reject);
});
}
推荐阅读
- python - 从另一个数组分配一个数组 [加密器问题]
- java - 定义返回列表的 REST 端点
- powershell - Powershell New-Service 授予权限被拒绝
- xamarin - 如何从 Xamarin.ios 中的超链接 UITextView 控件中删除下划线?
- javascript - SharePoint 2013 - 使用 JavaScript 覆盖字段
- wpf - 基于 XAML 中的属性将样式应用于按钮
- mysql - 引导表不显示数据
- python - 在 NLTK 中使用 shif-reduce 解析器尽可能多地解析句子?
- php - 尝试从 json url 打印特定部分
- php - 使用 AWS 经典负载平衡的问题