nestjs使用 axios
时间: 2024-07-09 13:01:16 浏览: 277
NestJS是一个为TypeScript编写的开源、基于Node.js的Web框架,设计目标是提供更好的组织和模块化,使构建高效、可维护的服务器端应用程序变得更加简单。当在NestJS项目中使用axios库时,你可以轻松地进行HTTP请求,无论是发送GET、POST还是其他类型的API调用。
1. 首先,你需要安装axios作为依赖项。在你的项目目录下打开终端或命令提示符,运行:
```bash
npm install axios @nestjs/common
# 或者使用yarn
yarn add axios @nestjs/common
```
2. 在`@nestjs/core`模块中,axios通常是自动注入的,所以在服务(service)或控制器(controller)里可以直接使用它。例如,在一个控制器中:
```typescript
import { Controller, Get, Post } from '@nestjs/common';
import { HttpService } from '@nestjs/common/services/http.service';
@Controller('api')
export class MyController {
constructor(private readonly http: HttpService) {} // 注入axios
@Get()
async getItems() {
return this.http.get('https://jsonplaceholder.typicode.com/posts'); // 发送GET请求
}
@Post()
async postData(data: any) {
return this.http.post('https://httpbin.org/post', data); // 发送POST请求
}
}
```
3. 如果你想自定义axios配置,可以在创建`HttpService`实例时传入配置选项,如设置超时时间或全局默认头:
```typescript
constructor(private http: HttpService = new HttpService({ timeout: 1000 * 60 })) {}
```
4. 当处理错误时,axios会抛出`AxiosError`,你可以捕获并处理这些异常:
```typescript
try {
const response = await this.http.get('...');
} catch (error) {
console.error(error);
}
```
阅读全文