Laravel経験者のNestJS入門【概要:モジュール】

NestJSにおけるモジュールに関するお勉強記録です。主に以下のページを見て学んだ内容になります。

Modules | NestJS - A progressive Node.js framework

自分が知らないだけであるのかも知れないけれど、Laravelでは見た事の無い概念でした。一応さらっと調べた感じではLaravel本体には無いけれど、モジュールを扱うパッケージはあるっぽかったです。

モジュール

一定の機能群をひとまとめにする仕組みのようです。

モジュールの作成

NestJSでは以下のコマンドでサービスを作成できます。catsフォルダの下にcats.module.tsという名前でファイルが作成されます。

nest g module cats

作られた直後の中身はこんな感じです。

app.module.tsにもモジュールが登録されます。

catsモジュールを編集する

モジュールのファイルを次の様に編集します。これまでapp.module.tsに書いてあったproviderやcontrollerがここに記述されています。

app.module.tsを編集する

app.module.tsは現在こんな感じになっています。「nest g module cats」コマンドでCatsModuleがimportされているので、このファイル内からCatsControllerとCatsServiceを削除します。

編集後はこんな感じになりました。

これですっきりしました。

インポート/エクスポート

@Moduleデコレータのプロパティでexportsと指定すると、別のモジュールでimportして使えるようになるそうです。

グローバルモジュール

モジュールは@Globalデコレータを設定するとグローバルに使えるようになるらしいです。むやみやたらに使うのは良くないとのことです。

最後に

他にも動的モジュールなどあれこれ書かれていましたが使いどころがイメージ出来ないので割愛します。最後の状態のコードを一応置いておきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です