首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nestjs Subscriber +TypeOrm通过yml文件注入

Nestjs Subscriber +TypeOrm通过yml文件注入
EN

Stack Overflow用户
提问于 2020-11-25 15:29:05
回答 1查看 472关注 0票数 0

我们如何使用yml文件注入订阅者的连接依赖关系。

我的文件是: ormconfig.yml

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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上下文中可用。

代码语言:javascript
复制
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 */ ]
  })
EN

回答 1

Stack Overflow用户

发布于 2020-11-25 16:49:49

You can refer to the official NestJS documentation for this problem.

代码语言:javascript
复制
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    TypeOrmModule.forRoot(),
  ],
})
export class AppModule {}

一旦导入了TypeOrmModule,您就可以在任何地方使用Connection作为提供者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65000172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档