我们如何使用yml文件注入订阅者的连接依赖关系。
我的文件是: ormconfig.yml
default:
type: 'postgres'
host: 'localhost'
port: 5432
username: 'postgres'
password: 'root'
database: 'hiring_db'
entities: ["dist/**/*.entity{.ts,.js}"]
synchronize: true
logging: ["query","error"]
logger: "file"
extra: { timezone: "+5:30" }
migrations: ["src/migrations/*.ts"]
cli: {
migrationDir: 'src/migrations'
}
subscribers: ["src/**/*.subscriber{.ts,.js}"]JobPostingModule.ts
import { Module } from '@nestjs/common';
import { JobPostingController } from './job-posting.controller';
import { JobPostingService } from './job-posting.service';
import { AuthModule } from '../auth/auth.module';
import { RecruitmentService } from '../recruitment/recruitment.service';
@Module({
imports: [
AuthModule
],
controllers: [JobPostingController],
providers: [JobPostingService, RecruitmentService]
})
export class JobPostingModule {}JobSubscriber.ts
import { Injectable } from '@nestjs/common';
import { InjectConnection } from '@nestjs/typeorm';
import { Jobs } from 'src/entities/job-posting.entity';
import { Connection, EntitySubscriberInterface, getConnection, InsertEvent, UpdateEvent } from 'typeorm';
import { JobPostingService } from './job-posting.service';
@Injectable()
export class JobSubscriber implements EntitySubscriberInterface {
constructor(private readonly connection: Connection) {
connection.subscribers.push(this); // <---- THIS
}
listenTo() {
return Jobs;
}
afterInsert(event: InsertEvent<Jobs>) {
console.log('Hi guys!');
};
afterUpdate(event: UpdateEvent<any>) {
console.log('Hi guys!');
}
}我得到这个错误: Nest无法解析JobSubscriber的依赖项(?)。请确保索引处的参数连接在AppModule上下文中可用。
Potential solutions:
- If Connection is a provider, is it part of the current AppModule?
- If Connection is exported from a separate @Module, is that module imported within AppModule?
@Module({
imports: [ /* the Module containing Connection */ ]
})发布于 2020-11-25 16:49:49
You can refer to the official NestJS documentation for this problem.
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
TypeOrmModule.forRoot(),
],
})
export class AppModule {}一旦导入了TypeOrmModule,您就可以在任何地方使用Connection作为提供者。
https://stackoverflow.com/questions/65000172
复制相似问题