目次
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機能を実装するためのリソースを生成します。
次に、Itemエンティティを定義します。これはCRUD操作の対象となるデータモデルです。
サービスファイル(
次に、コントローラー(
これで、NestJSでの基本的なCRUD操作の実装が完了です。このフレームワークは、TypeScriptを活用し、スケーラブルなWebアプリケーションの構築を非常に効率的に行えるため、非常に有用です。
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アプリケーションの構築を非常に効率的に行えるため、非常に有用です。