NestJS公式ドキュメント翻訳
原文
First steps | NestJS - A progressive Node.js web framework
First steps
これからNestの基礎を学びます。Nestアプリケーションの重要な構成要素を理解するために、入門レベルで多くの範囲をカバーする基本的なCRUDアプリケーションを構築します。
言語
私たちはTypeScriptが大好きですが、何よりもNode.jsが大好きです。NestはTypeScriptと純粋なJavaScriptの両方と互換性があります。 Nestは最新の言語機能を利用しているため、普通のJavaScriptで使用するにはBabelコンパイラが必要です。
前提
Node.js(> = 8.9.0)がOSにインストールされていることを確認してください。
セットアップ
Nest CLIを使用すると、新しいプロジェクトを簡単に作成することができます。npmをインストールすると、OSターミナルで次のコマンドを使用して新しいNestプロジェクトを作成できます。
$ npm i -g @nestjs/cli
$ nest new project-name
project
ディレクトリが作成され、nodeモジュールと他のいくつかの定型ファイルがインストールされ、src/
ディレクトリが作成されいくつかのコアファイルができます。
src
├─ app.controller.ts
├─ app.module.ts
└─ main.ts
コアファイルの概要は次のとおりです。
app.controller.ts |
単一ルートの基本的なコントローラーサンプル。 |
app.module.ts |
アプリケーションのルートモジュール。 |
main.ts |
コア関数NestFactory を使用してNestアプリケーションインスタンスを作成するアプリケーションのエントリファイル。 |
main.ts
には、アプリケーションを**起動(bootstrap)**する非同期関数が含まれています。
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
Nestアプリケーションインスタンスを作成するには、コアのNestFactory
クラスを使用します。NestFactory
はアプリケーションインスタンスを作成するためのいくつかの静的メソッドを公開します。create()
メソッドはINestApplication
インターフェイスを満たすアプリケーションオブジェクトを返します。このオブジェクトは、今後の章で説明する一連のメソッドを提供します。上のmain.ts
の例では、HTTPリスナーを起動するだけでアプリケーションがHTTPリクエストを受け取れるようにします。
Nest CLIでスキャフォールドされたプロジェクトは、初期的なプロジェクト構造で構成され、開発者は各モジュールを専用ディレクトリに保持するという規則を守ることが推奨されます。
プラットフォーム
Nestはプラットフォームに依存しないフレームワークを目指しています。プラットフォームに依存しないため、開発者は複数の異なるタイプのアプリケーションで利用できる再利用可能な論理パーツを作成することができます。技術的にはアダプターを作成すれば、Nestは任意のNode HTTPフレームワークを利用できます。デフォルトでサポートされているHTTPプラットフォームは、express
とfastify
の2つです。ニーズに最適なものを選択できます。
platform-express |
ExpressはNode用の有名なミニマムなWebフレームワークです。コミュニティによって実装された多くのリソースを備えた、実際によく使われる成熟したライブラリです。@nestjs/platform-express パッケージはデフォルトで使用されます。多くのユーザーにとってExpressは十分であり、それを有効にするために何もする必要はありません。 |
platform-fastify |
Fastifyは最大の効率と速度を提供することに重点を置いた高性能で低オーバーヘッドのフレームワークです。使用方法はこちらをご覧ください。 |
どのプラットフォームを使用する場合でも、独自のアプリケーションインターフェイスを公開します。これらは、それぞれNestExpressApplication
およびNestFastifyApplication
として表示されます。
次の例のように、NestFactory.create()
メソッドに型を渡すと、app
オブジェクトにはその特定のプラットフォーム専用のメソッドが含まれます。ただし、基盤となるプラットフォームのAPIに実際にアクセスする場合を除き、型を指定する必要はありません。
const app = await NestFactory.create<NestExpressApplication>(AppModule);
アプリケーションの実行
インストールが完了したら、OSコマンドプロンプトで次のコマンドを実行して、HTTPリクエストを待機するアプリケーションを開始できます。
$ npm run start
このコマンドでアプリが起動し、HTTPサーバはsrc/main.ts
ファイルで定義されたポートで待機します。アプリケーションが実行されたら、ブラウザを開いてhttp://localhost:3000/
に移動してください。Hello World!
のメッセージが表示されるはずです。