🍣

Nest.js一旦ここだけ抑えとこ

に公開

Nest.js の特徴ざっくり

  • TypeScript 前提
  • Angular 風の構成(Module / Controller / Service)
  • DI(依存性注入)が強力
  • Express または Fastify を内部で使用
  • CLI が便利(nest コマンド)

最低限知っておくべき構成要素

1. Module(モジュール)

Nest.js は モジュール単位で構成されます。@Module() デコレーターで定義します。

// app.module.ts
@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

2. Controller(ルーティング処理)

ルーティングの入口。@Controller() デコレーターでルートを定義し、@Get()@Post() でメソッドに対応付けます。

// app.controller.ts
@Controller('hello')
export class HelloController {
  @Get()
  getHello(): string {
    return 'Hello Nest!';
  }
}

3. Service(ビジネスロジック)

実際の処理を担う層。@Injectable() で DI 可能になります。

// hello.service.ts
@Injectable()
export class HelloService {
  getMessage(): string {
    return 'Service says hi!';
  }
}

Controller から呼び出して使います。

4. DI(依存性注入)

Service を Controller に注入する例:

@Controller()
export class HelloController {
  constructor(private readonly helloService: HelloService) {}

  @Get()
  getHello(): string {
    return this.helloService.getMessage();
  }
}

CLI コマンド入門

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

よく使うコマンド:

nest generate controller hello     # controller 作成
nest generate service hello        # service 作成
nest generate module hello         # module 作成

その他最低限おさえておきたい知識

  • DTO(Data Transfer Object) → リクエスト/レスポンスの型定義に便利
  • Pipe / Guard / Interceptor → バリデーションや認証処理に使用
  • Middleware → Express 互換で使用可能
  • Exception Filter → エラーハンドリングを共通化

もっと学びたい人向けリンク

まとめ

Nest.js を触り始めるなら、まずは以下を理解しておきましょう:

  • Module / Controller / Service の関係
  • DI の仕組み
  • CLI を活用した開発フロー

これだけでも、簡単な REST API はすぐ作れます。

Discussion