Nest.jsでミドルウェアを作成するには、以下の手順に従います。
- ミドルウェアクラスを作成します。これは、
@Injectable()
デコレータを使用してNest.jsの依存性注入システムに登録する必要があります。例えば、以下のようなミドルウェアクラスを作成できます。
@Injectable()
export class MyMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: NextFunction) {
// ミドルウェアの処理を記述します
console.log('ミドルウェアが実行されました');
next();
}
}
- ミドルウェアをグローバルに適用するか、特定のルートやコントローラーに適用するかを選択します。
- グローバルに適用する場合は、
main.ts
ファイルでapp.use()
メソッドを使用します。
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(MyMiddleware); // ミドルウェアをグローバルに適用
await app.listen(3000);
}
bootstrap();
- 特定のルートやコントローラーに適用する場合は、
@UseMiddleware()
デコレータを使用します。例えば、以下のようなコントローラーでミドルウェアを使用できます。
@Controller('example')
@UseMiddleware(MyMiddleware) // ミドルウェアをコントローラーに適用
export class ExampleController {
// ルートやメソッドの処理を記述します
@Get()
getData() {
return 'データを取得しました';
}
}
これで、Nest.jsでミドルウェアを使用する準備が整いました。ミドルウェアは、リクエストとレスポンスの処理の間に入り、特定の操作を実行するための理想的な方法です。例えば、認証やログ記録などのタスクを処理するために使用できます。
この記事では、Nest.jsでミドルウェアを作成し、グローバルに適用する方法と特定のルートやコントローラーに適用する方法を紹介しました。ミドルウェアは、アプリケーションの柔軟性と保守性を向上させるための強力なツールです。ぜひ実践してみてください。