#author("2023-03-10T00:28:43+00:00","default:admin","admin") #author("2023-03-23T00:41:09+00:00","default:admin","admin") [[NestJS:https://nestjs.com/]] -[[docs:https://docs.nestjs.com/]] -[[NestJS トレイルマップ:https://zenn.dev/optimisuke/articles/ee508749ae60a6]] -[[実践 NestJS:https://www.slideshare.net/ssusercd7730/nestjs-253274492]] -[[Nest.jsは素晴らしい:https://qiita.com/kmatae/items/5aacc8375f71105ce0e4]] -[[NestJSのススメ ~Expressを超えてゆけ~:https://qiita.com/elipmoc101/items/9b1e6b3efa62f3c2a166]] -[[Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介:https://techblog.yahoo.co.jp/entry/2020121530052952/]] -[[NestJS を使って最速リリースを目指している話:https://tech.robotpayment.co.jp/entry/2022/06/10/165432]] -[[All TypeScript で開発したLINEで動くリアルタイムクイズアプリの裏側:https://engineering.linecorp.com/ja/blog/all-typescript-uit-app/]] -[[GraphQL スターターパック | Prisma + NestJS + Next.JS製 個人ブログサイトをCloud Runで運用しよう:https://zenn.dev/waddy/books/graphql-nestjs-nextjs-bootcamp]] -[[NestJS × Reactで学ぶフルスタックGraphQLアプリケーション開発:https://www.udemy.com/course/nestjs-react-graphql/]] *概要 [#d619a569] -Typescript製のバックエンドフレームワーク -デフォルトではExpressをコアとして動作 -Fastifyをコアとして動作させることもできる -Node.jsで上で動く -実装と疎結合になるようなアーキテクチャ -nest cli で簡単にプロジェクトやソースファイルのテンプレートを生成できる -Expressのミドルウェアをそのまま使える -テストフレームワークが用意されている -認証ライブラリはPassportなどが使える -OpenAPIで出力しやすい -GraphQLもサポート -WebSocketももちろんOK -class-validatorを使って楽々バリデーション -TypeORMで型の恩恵を最大限に受けつつDB操作できる -とにかく拡張性が高い -フレームワークのエコシステムとしてDIの機構を用意している -デコレーターやアノテーションによって関心の分離を行うことができる -Interceptorや大域エラーハンドリングなどのデザインパターンをフレームワークの機能として提供している *事例 [#a69afa2f] -[[NestJS を使ってジョブメドレーアカデミーのバックエンド開発をどのように行なっているのか:https://developer.medley.jp/entry/2022/11/30/104006]] *入門 [#vde73ff6] -[[初心者向けNestJS(Typescript)バックエンド開発講座:https://zenn.dev/takaha4k/articles/e0e85100c161ad]] -[[NestJSにざっくり入門してみる:https://zenn.dev/higuchimakoto/articles/21c8420c4a612a]] -[[NestJSの始め方:https://qiita.com/tobita0000/items/6705800853b2869fec80]] -NestJSのCLIをインストール $ npm i -g @nestjs/cli -NestJSのプロジェクト作成 $ nest new [プロジェクト名] --パッケージマネージャとして npm を選択 ? Which package manager would you ❤️ to use? npm -開発モードで実行 $ cd [プロジェクト名] $ npm run start:dev -http://localhost:3000/ にアクセスし、Hello World! が表示されるのを確認 *monorepo [#m90484fb] -[[【NestJS】NestJSでmonorepo機能を使ってみた:https://kakkoyakakko2.hatenablog.com/entry/nestjs-monorepo]] -[[Turborepoを利用したmonorepo構成のNestJS+Prismaプロジェクトの構築:https://tech-blog.s-yoshiki.com/entry/296]] **monorepoとは [#v9cac638] -1つのリポジトリで複数のモジュールリポジトリを管理すること -共通のモジュールを参照する複数のアプリケーションが存在する場合に管理が楽になる **効果 [#l872135d] -NestJSはアプリケーションが肥大化しがちです。この機能を使用することでアプリケーションを分割してリリース単位を分けて、アプリケーションを小さく出来るので、起動時の読み込み処理の改善につながります。 **関連ツール [#w89ef138] ***[[turborepo:https://turbo.build/]] [#f1a8fd3f] -[[Turborepo でモノレポ構成のプロジェクトを爆速でビルドする:https://dev.classmethod.jp/articles/turborepo-superfast-monorepo-ci/]] -[[モノレポのためのツールTurborepoを触ってみた:https://engineerblog.mynavi.jp/technology/monorepo/]] *認証 [#hd2f0639] -[[NestJSで作成したバックエンドAPIをAuth0で認証/認可:https://dev.classmethod.jp/articles/auth0-nestjs-backend-sample/]] *AWS [#w23ac3e6] -[[NestJS で作成したRESTfull APIをAWS Lambda + API Gatewayで構成する:https://note.com/shift_tech/n/ne5c3628ec6d1]] -[[NestJSをLambda上に乗せたい話:https://zenn.dev/saitom_tech/articles/nestjs_on_lambda]] -[[Deploy a NestJS API to AWS Lambda with Serverless Framework:https://dev.to/aws-builders/deploy-a-nestjs-api-to-aws-lambda-with-serverless-framework-4poo]] *Azure [#pfda0e2a] -[[Deploy NestJS Serverless Apps to Azure Functions:https://trilon.io/blog/deploy-nestjs-azure-functions]]