LoginSignup
0
0

More than 3 years have passed since last update.

First steps | NestJS 【翻訳】

Posted at

NestJS公式ドキュメント翻訳

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プラットフォームは、expressfastifyの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!のメッセージが表示されるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0