swagger - Nestjs Swagger 4 的循环依赖
问题描述
当我将@nest/swagger库更新到版本 4 时,发生了这个错误:
(node:16134) UnhandledPromiseRejectionWarning: Error: A circular dependency has been detected (property key: "customer"). Please, make sure that each side of a bidirectional relationships are using lazy resolvers ("type: () => ClassType").
at SchemaObjectFactory.createNotBuiltInTypeReference (/opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:182:19)
at SchemaObjectFactory.mergePropertyWithMetadata (/opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:117:25)
at /opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:66:35
at Array.map (<anonymous>)
at SchemaObjectFactory.exploreModelSchema (/opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:65:52)
at SchemaObjectFactory.createNotBuiltInTypeReference (/opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:187:37)
at SchemaObjectFactory.mergePropertyWithMetadata (/opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:117:25)
at /opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:66:35
at Array.map (<anonymous>)
at SchemaObjectFactory.exploreModelSchema (/opt/desenvolvimento/Haizen/projectx_back/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:65:52)
我的模型课似乎是这样的:
@Entity()
export class Job {
.
.
.
@ManyToOne(type => Customer, customer => customer.jobs)
@ApiProperty({ type: Customer })
customer: Customer;
}
解决方案
对我有用的解决方案是在@ApiProperty()中声明带有箭头函数的类型,如下所示:
@Entity()
export class Job {
.
.
.
@ManyToOne(type => Customer, customer => customer.jobs)
@ApiProperty({ type: () => Customer })
customer: Customer;
}
推荐阅读
- redux - 如何调度一个动作,等待 1 秒,然后在 Redux Observable 中调度另外两个动作?
- wordpress - 将停放的域指向 Wordpress 子站点而不更改 url
- selenium-webdriver - 访问与 app_host 不同的 URL 时,Capybara 不会完全重置
- android - onClick 在带有 DataBinding 的 MVVM 中不起作用
- python - 使用 tika Python 3 更快地阅读 pdf 文件
- pointers - 检查指针是否指向 Nil Slice
- python - 我怎样才能使def函数不显示两次
- stringtemplate - 如何防止额外的分隔符?
- sql-server - 加入计数表。每天需要每个 Cust_ID
- python - 在 django 中创建登录会话