NestJS không có registry provider toàn cục: mỗi module là một phạm vi DI riêng. Muốn OrderService (ở OrderModule) inject được UserService (ở UserModule) thì phải đủ hai vế:
1. UserModule export UserService.
2. OrderModule import UserModule.
ts
@Module({ providers: [UserService], exports: [UserService] })
export class UserModule {}
@Module({ imports: [UserModule], providers: [OrderService] })
export class OrderModule {}Đọc thông báo lỗi: dấu ? cho biết Nest không xác định được kiểu ở vị trí tham số đó; con số trong at index [1] là vị trí tham số constructor bị thiếu; phần cuối cho biết Nest đang tìm trong context module nào.
Ba nguyên nhân hay gặp ngoài việc quên exports: thiếu @Injectable() trên class provider; inject theo interface (interface không tồn tại lúc runtime, phải dùng token); và circular import giữa hai module.