Module là đơn vị tổ chức cơ bản trong NestJS, nhóm các thành phần liên quan lại. Mỗi app có ít nhất một root module (AppModule).
@Module() nhận một object với 4 thuộc tính: imports (modules khác cần dùng), controllers (xử lý HTTP requests), providers (services, repositories, guards...), và exports (providers cho phép modules khác sử dụng). Chỉ những providers được exports mới có thể được inject ở module khác.
Các loại module: Feature Module nhóm theo tính năng (UsersModule, AuthModule), Shared Module export providers để tái sử dụng, Global Module dùng @Global() để providers available toàn app không cần import, Dynamic Module cấu hình runtime qua forRoot() / forRootAsync().