Skip to content

Instantly share code, notes, and snippets.

@darwinsubramaniam
Last active January 31, 2024 08:37
Show Gist options
  • Save darwinsubramaniam/f0ee125e0cee21ba787cc93c60272c79 to your computer and use it in GitHub Desktop.
Save darwinsubramaniam/f0ee125e0cee21ba787cc93c60272c79 to your computer and use it in GitHub Desktop.
The Explaination of forRoot and ForFeature

ForRoot

This is useful when the registerAs is required across, so it is best to use it in the AppModule

import databaseConfig from './config/database.config';
@Module({
  imports: [
    ConfigModule.forRoot({
      load: [databaseConfig],
    }),
  ],
})
export class AppModule {}

the registerAs has to be loaded into the configureModule.forRoot by adding it in the the load array.

ForFeature

This is valuable to ensure the registerAs is only applicable for the module only. It is better as most of the config is required for the respective modules only.

import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import databaseConfig from './database.config';

@Module({
  imports: [ConfigModule.forFeature(databaseConfig)],
  providers: [],
  exports: []
})
export class CouchdbModule { }
@jhonchicaizag
Copy link

jhonchicaizag commented Jan 24, 2023

The best explanation, really yes!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment