目次

    NestJSは、モダンなNode.jsフレームワークとして注目されています。REST APIを簡単に構築でき、特にCRUD操作(Create, Read, Update, Delete)の実装がスムーズです。この記事では、基本的なCRUD操作をNestJSでどのように実装するかについて説明します。

    1. プロジェクトのセットアップ


    まず、NestJSのCLIを使用して新しいプロジェクトを作成します。

    npm i -g @nestjs/cli
    nest new my-crud-app

    セットアップが完了したら、CRUD機能を実装するためのリソースを生成します。

    nest generate resource item

    2. モデルの定義


    次に、Itemエンティティを定義します。これはCRUD操作の対象となるデータモデルです。

    export class CreateItemDto {
      name: string;
      description: string;
      price: number;
    }

    3. サービスの実装


    サービスファイル(item.service.ts)では、データの作成、読み取り、更新、削除のロジックを実装します。

    @Injectable()
    export class ItemService {
      private items: CreateItemDto[] = [];

      findAll(): CreateItemDto[] {
        return this.items;
      }

      create(item: CreateItemDto) {
        this.items.push(item);
      }

      update(id: number, updateItemDto: CreateItemDto) {
        this.items[id] = updateItemDto;
      }

      remove(id: number) {
        this.items.splice(id, 1);
      }
    }


    4. コントローラーの実装


    次に、コントローラー(item.controller.ts)で各CRUD操作に対応するエンドポイントを作成します。

    @Controller('items')
    export class ItemController {
      constructor(private readonly itemService: ItemService) {}

      @Get()
      findAll(): CreateItemDto[] {
        return this.itemService.findAll();
      }

      @Post()
      create(@Body() createItemDto: CreateItemDto) {
        this.itemService.create(createItemDto);
      }

      @Put(':id')
      update(@Param('id') id: number, @Body() updateItemDto: CreateItemDto) {
        this.itemService.update(id, updateItemDto);
      }

      @Delete(':id')
      remove(@Param('id') id: number) {
        this.itemService.remove(id);
      }
    }


    5. 結論


    これで、NestJSでの基本的なCRUD操作の実装が完了です。このフレームワークは、TypeScriptを活用し、スケーラブルなWebアプリケーションの構築を非常に効率的に行えるため、非常に有用です。



    PREV
    2024.09.10
    パフォーマンス最適化:高速で美しいWebsiteの作り方
    NEXT
    2024.09.10
    機能要件と非機能要件