我知道从cron作业注入REQUEST
是不起作用的,但我在从http请求注入它时遇到了问题——变为null。
应用程序模块:
@Module({
imports: [
TypeOrmModule.forRoot(configService.getTypeOrmConfig()),
],
controllers: [
PurchaseController,
],
providers: [
ProgramsSeasonsService,
PurchaseService,
],
exports: [
PurchaseService,
ProductPricingService,
ProgramsSeasonsService,
],
})
export class AppModule {}
控制器:
@Controller('purchase')
export class PurchaseController {
constructor(
private purchaseService: PurchaseService) {}
@Post('/request')
async checkRequest() {
this.purchaseService.checkRequest();
}
}
服务:
@Injectable()
export class PurchaseService {
constructor(
@Inject(REQUEST) private request,
private programsSeasonsService: ProgramsSeasonsService,
) {}
checkRequest() {
console.log('PurchaseService request: ', this.request);
this.programsSeasonsService.checkRequest();
}
}
@Injectable()
export class ProgramsSeasonsService {
constructor(
private spacesService: SpacesService,
@Inject(REQUEST) private request,
) {
}
checkRequest() {
console.log('ProgramsSeasonsService request: ', this.request);
}
}
输出日志:
PurchaseService request: IncomingMessage {
_readableState:
ReadableState {
objectMode: false,
....
}
ProgramsSeasonsService request: null
升级到NestJS 8.1(从7.0.0开始(为我修复了问题