NestJs Tyeporm-为什么实体中的唯一约束会引发异常并使应用崩溃

时间:2019-03-19 08:47:21

标签: unique nestjs typeorm

我有一个描述为

的实体
export class TeamEntity {
  @PrimaryGeneratedColumn('uuid')
  readonly id: string;

  @CreateDateColumn()
  readonly createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;

  @Column({ unique: true })
  @Unique('Duplicate name', ['name'])
  name: string;
}

当第一次尝试将记录添加到数据库时,将按预期插入记录。当尝试再次插入同一记录时,将不满足唯一约束,并且不会按预期插入记录。

问题是,当不满足此约束条件时,整个应用程序将崩溃,我必须重新启动应用程序才能使其重新联机。

此规则的一个奇怪的例外是,当执行路径中任何地方出现console.log()时,应用程序都不会崩溃,并且抛出正确的错误消息,并且应用程序继续运行。

存在console.log()时应用程序不会崩溃的原因吗?如果是这样,删除该行后如何停止应用程序崩溃?

1 个答案:

答案 0 :(得分:0)

您可以使用Insert ignore解决此问题

await getManager()
      .createQueryBuilder()
      .insert()
      .orIgnore(true)
      .into(TeamEntity)
      .values({name: 'John'})
      .execute();