【问题标题】:Error When Defining Relationships In sequelize-typescript On nestjs/sequelize在 Nestjs/sequelize 上的 sequelize-typescript 中定义关系时出错
【发布时间】:2021-06-26 10:22:59
【问题描述】:

我遇到了一个错误

没有重载匹配这个调用

每当我尝试使用 @HasMany() 或 @BelongsTo 装饰器时。 我正在使用nestjs/sequelize:“^0.2.0”,sequelize:“^6.4.0”,sequelize-typescript:“^2.0.0”

我可能遗漏了一些琐碎的东西,但这也可能是版本控制或这三个库之间的集成的问题。可能跟nestjs没什么关系,不过我觉得还是值得一提的,以防万一。

这是我的两个模型:

user.model.ts

import {
  AllowNull,
  Column,
  DataType,
  HasMany,
  HasOne,
  IsEmail,
  Model,
  Table,
  Unique,
} from 'sequelize-typescript';
import { Course } from '../courses/course.model';
import { UserRole } from './enums/user.roles.enum';


@Table
export class User extends Model<User> {
  @Column
  firstName: string;

  @Column
  lastName: string;

  @IsEmail
  @AllowNull(false)
  @Unique
  @Column
  email: string;

  @Column({ defaultValue: false })
  verified: boolean;

  @Column
  verificationCode: string;

  @Column
  passwordHash: string;

  
  @Column({ defaultValue: UserRole.STUDENT })
  role: string;

  @HasMany(() => Course)
  courses: Course[];
}

课程.model.ts

import {
  AllowNull,
  BelongsTo,
  Column,
  DataType,
  ForeignKey,
  HasOne,
  IsEmail,
  Model,
  Table,
  Unique,
} from 'sequelize-typescript';
import { User } from '../users/user.model';
    
@Table
export class Course extends Model<Course> {
  @Unique
  @Column
  title: string;

  @ForeignKey(() => User)
  @Column
  teacherId: number;

  @BelongsTo(() => User)
  @Column
  teacher: User;
}

【问题讨论】:

    标签: sequelize.js nestjs sequelize-typescript


    【解决方案1】:

    关注此issue后解决

    原来与 sequelize@6.3.5 相关,同时带有 sequelize-typescript @1.1.0 和 @2.0.0-beta.0

    可以通过降级到 sequelize@6.1.1 来解决, 或从类声明中删除 &lt;Course&gt;&lt;User&gt; 类型。

    同时从 course 的teacher 属性中删除@Column 装饰器,这导致了另一个问题。

    【讨论】:

      猜你喜欢
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2020-01-20
      • 2019-01-23
      相关资源
      最近更新 更多