NestJS Configuration Standards
Priority: P1 (OPERATIONAL)
Environment configuration and validation patterns for NestJS applications.
Setup
- •Library: Use
@nestjs/config. - •Initialization: Import
ConfigModule.forRoot({ isGlobal: true })inAppModule.
Validation
- •Mandatory: Validate environment variables at startup.
- •Tool: Use
joior a custom validation class. - •Effect: The app must crash immediately if a required env var (e.g.,
DB_URL) is missing.
typescript
// app.module.ts
ConfigModule.forRoot({
validationSchema: Joi.object({
NODE_ENV: Joi.string()
.valid('development', 'production')
.default('development'),
PORT: Joi.number().default(3000),
DATABASE_URL: Joi.string().required(),
}),
});
Usage
- •Injection: Inject
ConfigServiceto access values. - •Typing: Avoid magic strings. Use a type-safe getter helper or a dedicated configuration object/interface.
- •Secrets: Never commit
.envfiles. Add.env*to.gitignore.