小编bak*_*aku的帖子

TypeORM:如何实现双向关系,多字段 --> 一种实体类型

我创建了一个“文档”实体:

例如

@Entity()
export class Document {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  path: string;
   ...

}
Run Code Online (Sandbox Code Playgroud)

多个文档可以与不同的实体类型相关:post、userProfile 等

例如,在帖子实体中,我有几个字段都指定了文档关系。

  @OneToOne(type => DocumentEntity)
  @JoinColumn({ name: 'default_document' })
  defaultDocument: DocumentEntity;

  @OneToOne(type => DocumentEntity)
  @JoinColumn({ name: 'featured_document' })
  featuredDocument: DocumentEntity;

  @OneToMany(type => DocumentEntity, document => document.post)
  @JoinColumn({ name: 'other_documents' })
  otherDocs: DocumentEntity[]; 
Run Code Online (Sandbox Code Playgroud)

我不清楚如何使文档关系双向。我曾希望在文档上有一个字段,例如:

  @ManyToOne(type => abstractEntity, entity => entity.document)
  parentEntity: abstractEntity;
Run Code Online (Sandbox Code Playgroud)

这样,如果我查询文档实体的父关系,我会得到如下结果:

documents: [
{
id: 1,
name: 'document 1', 
path: 'https://image.hosted.service/1.jpg', 
parentEntityId: 23
}, 
{
id: 2
name: 'document 2', …
Run Code Online (Sandbox Code Playgroud)

erd one-to-many typeorm

8
推荐指数
1
解决办法
2654
查看次数

Nestjs全局pubsub实例和依赖注入

我遵循了有关 pubsub/subsciprtions 的 Nestjs DOCS:

根据示例, pubsub 在给定解析器的顶部初始化为:

const pubSub = new PubSub();
Run Code Online (Sandbox Code Playgroud)

后来文档说:

“我们在这里使用了本地 PubSub 实例。相反,我们应该将 PubSub 定义为提供者,通过构造函数注入它(使用 @Inject() 装饰器),并在整个应用程序中重用它”

{
  provide: 'PUB_SUB',
  useValue: new PubSub(),
}
Run Code Online (Sandbox Code Playgroud)

但这会去哪里呢?
即如何在我的主 app.module 中提供此功能以便它在所有其他模块中可用的语法/方法是什么?

如果我尝试将其作为不同模块中的依赖项提供,我会遇到依赖项解析问题。应用程序模块

  providers: [
    AppService,
    {
      provide: APP_FILTER,
      useClass: AllExceptionsFilter,
    },
    {
      provide: 'PUB_SUB',
      useValue: new PubSub(),
    },
Run Code Online (Sandbox Code Playgroud)

一些解析器.js

  constructor(
    @Inject('PUB_SUB')
    private pubSub: PubSub,
Run Code Online (Sandbox Code Playgroud)

给出: Nest 无法解析 MyResolver 的依赖项( MyResolver 由 MyModule 提供

我无法将 appmodule 导入 MyModule,否则我将创建循环依赖。

我是否定义一个仅提供 pub_sub 实例的新模块?

dependency-injection publish-subscribe nestjs

6
推荐指数
1
解决办法
2916
查看次数