😜
[Nestjs]Moduleをグローバルでインポートする2つの方法
結論
NestJsでインポートを行うには2つの方法がある。
-
@Grobal
アノテーションを使用する
Moduleで以下の通り記述するとグローバルインポートをすることができる。
import { Module, Global } from '@nestjs/common';
@Global() // これを追加してグローバルモジュールにする
@Module({
...
...
..
.
- Moduleのimportsの中のglobalオプションを使用し、グローバルインポートとして登録する
import { AuthModule } from './modules/auth/auth.module';
@Global()
@Module({
imports: [
// global: true でグローバルインポートとして登録される
{ global: true, module: AuthModule },
],
})
export class AppModule {}
どっちを使った方がいいのか
個人的には2のAppModuleがいいと思う。
ルートのapp.module.ts
での中でアプリケーション内のModuleをインポートしていると思うので、その中でGlobalImportしておいた方がなにがGlobalImportなのかを一元管理できるのでいいと思った。
参考
Discussion