mirror of
https://github.com/hantsy/nestjs-rest-sample.git
synced 2025-12-08 20:36:27 +00:00
docs: update config.md
This commit is contained in:
parent
f90635105e
commit
a9c6f3c2ec
@ -8,6 +8,8 @@ Nestjs provides excellent configuration support, thus your application can read
|
||||
|
||||
In this post, we will move our hard-coded configuration we've used in the previous posts to a central place and organize them with the NestJS configuration facilities.
|
||||
|
||||
## Introduce to ConfigModule
|
||||
|
||||
First of all, install `@nestjs/config` package.
|
||||
|
||||
```bash
|
||||
@ -51,6 +53,8 @@ ConfigModule.forRoot({
|
||||
|
||||
For the container deployment or cloud deployment, setup configuration in a config server or as environment variables or K8s *ConfigMap* is more popular.
|
||||
|
||||
## Externalizing application configurations
|
||||
|
||||
Personally, I prefer use a default hard-coded configuration in the development phase, and use environmental variables to override it in the production.
|
||||
|
||||
Nestjs also support load custom configuration where it can read configurations from the environment variables freely.
|
||||
@ -201,3 +205,39 @@ services:
|
||||
|
||||
We will start a new topic of deployment in the further posts.
|
||||
|
||||
|
||||
|
||||
## Testing configurations
|
||||
|
||||
An example of `jwt-config.spec.ts`.
|
||||
|
||||
```typescript
|
||||
import { ConfigModule, ConfigType } from '@nestjs/config';
|
||||
import { TestingModule, Test } from '@nestjs/testing';
|
||||
import jwtConfig from './jwt.config';
|
||||
|
||||
describe('jwtConfig', () => {
|
||||
let config: ConfigType<typeof jwtConfig>;
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
imports: [ConfigModule.forFeature(jwtConfig)],
|
||||
}).compile();
|
||||
|
||||
config = module.get<ConfigType<typeof jwtConfig>>(jwtConfig.KEY);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(jwtConfig).toBeDefined();
|
||||
});
|
||||
|
||||
it('should contains expiresIn and secret key', async () => {
|
||||
expect(config.expiresIn).toBe('3600s');
|
||||
expect(config.secretKey).toBe('rzxlszyykpbgqcflzxsqcysyhljt');
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
Grab [the source codes from my github](https://github.com/hantsy/nestjs-sample), switch to branch [feat/config](https://github.com/hantsy/nestjs-sample/blob/feat/config).
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user