'Add headers HttpRequest in NestJS
I'm trying to make a Http request in NestJS
As it's inspired from angular I jave append my Headers
import { Injectable, HttpService} from '@nestjs/common';
...
const headersRequest = new Headers();
headersRequest.append('Content-Type', 'application/json');
headersRequest.append('Authorization', `Basic ${encodeToken}`);
Then call the api
const result = await this.httpService.post(apiUrl, newDevice, { headers: headersRequest });
I get an error
ReferenceError: Headers is not defined
And when I ass Headers to import
I get this message waring in VScode
Only a void function can be called with the 'new' keyword.
Solution 1:[1]
I think this method false in for read headers parameter just req.headers example
@Get()
findHeaderexample(@Res() res,@Req req) {
return req.headers;
}
Solution 2:[2]
Another option (since nest v5 introduced HttpModule.registerAsync) if your encodeToken is pretty static or hardcoded from your config is setting it up in the module level:
import { Module, HttpModule } from '@nestjs/common';
import { ConfigModule } from '..';
import { ConfigService } from '../config/config.service';
@Module({
imports: [
ConfigModule,
HttpModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
baseURL: configService.get('vendors.apiEndpoint'),
headers: {
'Authorization': 'Basic ' + configService.get('vendors.encodeToken')
},
timeout: 7000,
maxRedirects: 5
}),
inject: [ConfigService]
})
],
// ... other module stuff
})
export class MyModule {}
Solution 3:[3]
If you want to set a custom header, you can use @ApiHeader()
@ApiHeader({
name: 'api-key',
description: 'api-key',
})
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Riadh farhati |
| Solution 2 | Lee Alexis |
| Solution 3 | Saeed Zhiany |
