開発環境の準備
本ページでは、NestJSで開発環境を整える準備の仕方について詳細に解説します。
本ページの内容はプログラミングの経験者を前提に書かれています。したがって、プログラミングに必要なVisual Studio Codeやその拡張機能をインストールする方法に関しては本ページで詳細に書かないのでご了承ください。

Node.jsをインストール

Node.jsはJavaScriptの実行環境です。JavaScript(TypeScript)で開発を進めるためには必要不可欠なツールです。以下の公式サイトにアクセスして推奨版を押してください。インストール完了の際、バージョン番号まで確認するので覚えておくと良いでしょう。
ダウンロード | Node.js
Node.js
あとは基本的にインストーラに従って次々ボタンを押すだけでインストールは完了します。
インストーラの手順が終了した後、Windowsの場合はコマンドプロンプト、MacOSの場合はターミナルを開いて、以下のコマンドを入力してください。
node --version
ダウンロードしたNode.jsのバージョンと同じ数字が返ってくればインストールは完了しています。その際、Node.jsと一緒にnpmもインストールされているのでそちらも確認してください。
npm --version
こちらの場合もバージョンが返ってきたらインストールが完了しています。

NestJSのインストール

NestJSをインストールする方法は次の2つです。
  • NestJS CLI
  • Gitコマンド
それぞれ順番に解説していきます。

NestJS CLI

以下のコマンドを入力するだけで、新しいプロジェクトディレクトリが生成されます。
npm i -g @nestjs/cli
npx nest new <project-name>

Gitコマンド

以下のコマンドを入力すれば、Git経由でも新規でプロジェクトを作成できます。
git clone https://github.com/nestjs/typescript-starter.git project
cd project
npm install

開発者サーバの立ち上げ

まずは以下のコマンドを叩いてください。
npm run start
http://localhost:3000/にアクセスすれば、画面にHello Worldが表示されるはずです。

簡単なディレクトリ紹介

NestJSの初期のディレクトリは以下の通りです。本章ではsrcフォルダのファイルを中心に話していきます。
src
- app.controller.spec.ts
- app.controller.ts
- app.module.ts
- app.service.ts
- main.ts
それぞれ順番に徹底解説していきます。

app.controller.spec.ts

Controllerのユニットテストを行う際に使うファイルです。
import { Test, TestingModule } from '@nestjs/testing'
import { AppController } from './app.controller'
import { AppService } from './app.service'
describe('AppController', () => {
let app: TestingModule
beforeAll(async () => {
app = await Test.createTestingModule({
controllers: [AppController],
providers: [AppService],
}).compile()
})
describe('getHello', () => {
it('should return "Hello World!"', () => {
const appController = app.get<AppController>(AppController)
expect(appController.getHello()).toBe('Hello World!')
});
});
});

app.controller.ts

単一のrouteを持つ基本的なControllerです。
import { Controller, Get } from '@nestjs/common'
import { AppService } from './app.service'
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello()
}
}

app.module.ts

NestJSアプリケーションの基盤となるModuleを扱います。
import { Module } from '@nestjs/common'
import { AppController } from './app.controller'
import { AppService } from './app.service'
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}

app.service.ts

単一のメソッドを持つ基本的なServiceです。
import { Injectable } from '@nestjs/common'
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!'
}
}

main.ts

コア関数NestFactoryを活用してNestJSアプリケーションのインスタンスを作成するアプリケーションのエントリファイルです。
import { NestFactory } from '@nestjs/core'
import { AppModule } from './app.module'
// この処理で開発者サーバを起動できる。
async function bootstrap() {
const app = await NestFactory.create(AppModule)
await app.listen(3000)
}
bootstrap()
Copy link
On this page
Node.jsをインストール
NestJSのインストール
NestJS CLI
Gitコマンド
開発者サーバの立ち上げ
簡単なディレクトリ紹介
app.controller.spec.ts
app.controller.ts
app.module.ts
app.service.ts
main.ts