Node.js - Axios for Nest support
Introduction
The Axios module for Nest was originally published as part of the @nestjs/common package. This package is a drop-in
replacement for the deprecated HttpModule - see https://docs.nestjs.com/techniques/http-module for more information.
Objects
This extension creates the service objects:
- a
NodeJS Delete HttpRequest serviceobject when thedeleteAPI of aHttpServiceis found; - a
NodeJS Get HttpRequest serviceobject when thegetorheadAPIs of aHttpServiceis found; - a
NodeJS Post HttpRequest serviceobject when thepostorpatchAPIs of aHttpServiceis found; - a
NodeJS Put HttpRequest serviceobject when theputAPI of aHttpServiceis found.
The request API of a HttpService can create four service objects above corresponding the APIs found in its arguments: delete, get, head, post, patch, put. If any API is not found, a NodeJS Get HttpRequest service object is created by default.
| Icon | Description |
|---|---|
![]() |
NodeJS Delete HttpRequest service |
![]() |
NodeJS Get HttpRequest service |
![]() |
NodeJS Post HttpRequest service |
![]() |
NodeJS Put HttpRequest service |
Supported links
| Link type | Caller type | Callee type |
|---|---|---|
| callLink |
|
|
Example
Take the following codes:
import { HttpService } from '@nestjs/axios';
import { Injectable } from '@nestjs/common';
@Injectable()
export class CatsService {
constructor(private httpService: HttpService) {}
create(createCatDto: CreateCatDto): Observable<AxiosResponse<any>> {
return this.httpService
.post('http://localhost:3000/cats', createCatDto)
.pipe(map((response) => response.data));
}
findAll(): Observable<AxiosResponse<Cat[]>> {
return this.httpService
.get('http://localhost:3000/cats')
.pipe(map((response) => response.data));
}
findOne(id: number): Observable<AxiosResponse<Cat>> {
return this.httpService
.get(`http://localhost:3000/cats/${id}`)
.pipe(map((response) => response.data));
}
update(
id: number,
updateCatDto: UpdateCatDto,
): Observable<AxiosResponse<Cat>> {
return this.httpService
.put(`http://localhost:3000/cats/${id}`, updateCatDto)
.pipe(map((response) => response.data));
}
remove(id: number): Observable<AxiosResponse<void>> {
return this.httpService
.delete(`http://localhost:3000/cats/${id}`)
.pipe(map((response) => response.data));
}
}
In this example, five service objects are created, and five ‘call’ links are also added between these objects and Typescript methods corresponding.




