NestJS

概要

  • Typescript製のバックエンドフレームワーク
  • デフォルトではExpressをコアとして動作
  • Fastifyをコアとして動作させることもできる
  • Node.jsで上で動く
  • 実装と疎結合になるようなアーキテクチャ
  • nest cli で簡単にプロジェクトやソースファイルのテンプレートを生成できる
  • Expressのミドルウェアをそのまま使える
  • テストフレームワークが用意されている
  • 認証ライブラリはPassportなどが使える
  • OpenAPIで出力しやすい
  • GraphQLもサポート
  • WebSocketももちろんOK
  • class-validatorを使って楽々バリデーション
  • TypeORMで型の恩恵を最大限に受けつつDB操作できる
  • とにかく拡張性が高い
  • フレームワークのエコシステムとしてDIの機構を用意している
  • デコレーターやアノテーションによって関心の分離を行うことができる
  • Interceptorや大域エラーハンドリングなどのデザインパターンをフレームワークの機能として提供している

事例

入門

  • NestJSのCLIをインストール
    $ npm i -g @nestjs/cli
  • NestJSのプロジェクト作成
    $ nest new [プロジェクト名]
    • パッケージマネージャとして npm を選択
      ? Which package manager would you ❤️  to use? npm
  • 開発モードで実行
    $ cd [プロジェクト名]
    $ npm run start:dev

monorepo

monorepoとは

  • 1つのリポジトリで複数のモジュールリポジトリを管理すること
  • 共通のモジュールを参照する複数のアプリケーションが存在する場合に管理が楽になる

効果

  • NestJSはアプリケーションが肥大化しがちです。この機能を使用することでアプリケーションを分割してリリース単位を分けて、アプリケーションを小さく出来るので、起動時の読み込み処理の改善につながります。

関連ツール

turborepo

認証

AWS

Azure


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-23 (木) 09:41:09 (393d)