NestJsでコントローラーを作成し、様々なHTTPメソッドを処理する方法

NestJSでのコントローラーの作成とHTTPメソッドの処理について学びましょう。

概要

NestJSのコントローラーは、クライアントからのHTTPリクエストを受け取り、適切なレスポンスを返す役割を果たします。この記事では、NestJSでコントローラーを作成し、GET、POST、PUT、DELETEなどのHTTPメソッドを処理する方法を詳しく解説します。

nest.js v10.1.7
nodejs v19.7.0

また、今回作成するコードは全て、GitHubに掲載しています。

NestJSのCLIを使ったコントローラーの作成

NestJSでは、CLIを使って簡単にコントローラーを作成することができます。以下のCLIコマンドを実行して、usersコントローラーを作成しましょう。

nest g co users

このコマンドを実行すると、usersコントローラーに必要なファイルが自動的に作成されます。

src/
└── users/
    ├── users.controller.spec.ts
    └── users.controller.ts

次に、NestJSアプリケーションのメインモジュールであるapp.module.tsに、作成したコントローラーを追加されたことを確認してください。

/src/app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersController } from './users/users.controller';

@Module({
  imports: [],
  controllers: [AppController, UsersController],
  providers: [AppService],
})
export class AppModule {}

これで、usersのルーティングコントローラーが作成されました。

NestJSコントローラーの編集とHTTPメソッドの処理

次に、作成したusersコントローラーを編集して、GET、POST、PUT、DELETEのHTTPメソッドを処理するように設定します。

/src/users/users.controller.ts


import { Controller, Get, Post, Put, Delete } from '@nestjs/common';

@Controller('users')
export class UsersController {
  @Get()
  getUsers(): string {
    return 'This is the response from the GET method';
  }

  @Post()
  createUser(): string {
    return 'This is the response from the POST method';
  }

  @Put()
  updateUser(): string {
    return 'This is the response from the PUT method';
  }

  @Delete()
  deleteUser(): string {
    return 'This is the response from the DELETE method';
  }
}

テスト

アプリケーションが起動したら、http://localhost:3000/usersにアクセスすると、GETメソッドのレスポンスが返ってきます。

curl -X GET http://localhost:3000/users
curl -X POST http://localhost:3000/users
curl -X PUT http://localhost:3000/users
curl -X DELETE http://localhost:3000/users

同様に、POST、PUT、DELETEメソッドに対するレスポンスも確認できます。

まとめ

この記事では、NestJSでコントローラーを作成し、GET、POST、PUT、DELETEなどのHTTPメソッドを処理する方法を学びました。これらの知識を活用して、NestJSを使ったアプリケーションの開発を進めていきましょう。