【问题标题】:NestJS and TypeORM issue with or without tsconfig target es5有或没有 tsconfig 目标 es5 的 NestJS 和 TypeORM 问题
【发布时间】:2019-09-21 00:53:12
【问题描述】:

根据 NestJS 身份验证教程,我复制粘贴了 JwtStrategy 类,但该类在构建时抛出错误

类代码是

@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
  constructor(private readonly userRepo: UserRepository) {
    super({
      jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
      secretOrKey: 'secretKey'
    });
  }
}

在 tsconfig.json 文件中使用 target=es5 我得到的错误

现在,如果我将目标更改为 es6,错误就会消失,但是 typeorm 多对多关系开始抛出错误

TypeORM 类用户得到了令牌,令牌类得到了用户,它会抛出下面的错误

我已创建存储库以重现 this 链接处的错误

运行以下命令查看错误

ng s --project=api

【问题讨论】:

  • 你能和我们分享你的模型吗?从错误中我会说你的模型中有循环依赖。
  • 是的,这是循环依赖错误,但这就是 typeorm 中实体的设计方式。如果我使用 es5 目标,我不会收到该错误,但如果我使用 es6 目标,那么我会开始收到它。
  • 我的问题中有 repo 链接,可以轻松下载和执行。它也有你正在寻找的课程

标签: node.js typescript webpack nestjs typeorm


【解决方案1】:

您正在混合使用nest v5 和nest v6,但不保证不同的主要版本可以正常互操作,例如:

"@nestjs/core": "5.5.0",
"@nestjs/jwt": "^6.0.0",

请将您的@nestjs 依赖项全部更新到migration guide 之后的版本6。

【讨论】:

  • 不工作,我使用 nrwl 创建了新项目,然后替换了我的旧包 json,但它没有工作
猜你喜欢
  • 2020-04-10
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2016-05-18
  • 2021-04-23
  • 2020-07-03
  • 2021-03-05
相关资源
最近更新 更多