開発環境の準備
本ページでは、NestJSで開発環境を整える準備の仕方について詳細に解説します。
本ページの内容はプログラミングの経験者を前提に書かれています。したがって、プログラミングに必要なVisual Studio Codeやその拡張機能をインストールする方法に関しては本ページで詳細に書かないのでご了承ください。
Node.jsはJavaScriptの実行環境です。JavaScript(TypeScript)で開発を進めるためには必要不可欠な ツールです。以下の公式サイトにアクセスして推奨版を押してください。インストール完了の際、バージョン番号まで確認するので覚えておくと良いでしょう。

あとは基本的にインストーラに従って次々ボタンを押すだけでインストールは完了します。
インストーラの手順が終了した後、Windowsの場合はコマンドプロンプト、MacOSの場合はターミナルを開いて、以下のコマンドを入力してください。
node --version
ダウンロードしたNode.jsのバージョンと同じ数字が返ってくればインストールは完了しています。その際、Node.jsと一緒にnpmもインストールされているのでそちらも確認してください。
npm --version
こちらの場合もバージョンが返ってきたらインストールが完了しています。
NestJSをインストールする方法は次の2つです。
- NestJS CLI
- Gitコマンド
それぞれ順番に解説していきます。
以下のコマンドを入力するだけで、新しいプロジェクトディレクトリが生成されます。
npm i -g @nestjs/cli
npx nest new <project-name>
以下のコマンドを入力すれば、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
それぞれ順番に徹底解説していきます。
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!')
});
});
});
単一の
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()
}
}
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 {}
単一のメソッドを持つ基本的な
Service
です。import { Injectable } from '@nestjs/common'
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!'
}
}
コア関数
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()
Last modified 11mo ago