🍣
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 → エラーハンドリングを共通化
もっと学びたい人向けリンク
- 公式ドキュメント:https://docs.nestjs.com/
- NestJS公式CLIガイド:https://docs.nestjs.com/cli/overview
- GitHubリポジトリ:https://github.com/nestjs/nest
まとめ
Nest.js を触り始めるなら、まずは以下を理解しておきましょう:
- Module / Controller / Service の関係
- DI の仕組み
- CLI を活用した開発フロー
これだけでも、簡単な REST API はすぐ作れます。
Discussion