NestJS

チュートリアルリンク

構成

  • module.ts
    • controller, module, serviceを束ねる
    • nest g module [module name]で雛形を作り、app.module.tsに登録してくれる
  • controller.ts
    • ルーティングなど
      • 特定のパスとControllerが紐付けられる
  • controller.spec.ts
    • Controllerテスト
  • service.ts
    • ビジネスロジックの定義
    • Controllerから呼び出される

Controller

import { Controller, Get } from '@nestjs/common';
 
@Controller('cats')
export class CatsController {
  @Get(':id')
  @HttpCode(200) // 省略可能
  @Header('Cache-Control', 'none')  // 省略可能
  find(@Param('id') id: number, @Query('query') query): string {
    return 'Cat ' + id;
  }
}
  • @Controllerデコレータで囲う. 引数はパス
  • 各パスは@Get/@Postなどのデコレータで囲う。引数はパス。
@Get('ab*cd')
findAll() {
  return 'This route uses a wildcard';
}
  • ちょっとした正規表現もサポートされている

Middleware