typescript sequelize/ create error

flobeeee·2021년 6월 1일
0

시행착오

목록 보기
12/45
post-thumbnail
post-custom-banner

문제발생

DB에 데이터를 추가하려고 하는데 에러 발생.
코드 22, 27 번을 보면
findOrCreate 나 findOne 에서는 에러 발생 X

에러 메세지

Type '{ userId: any; pageId: any; colorId: any; text: any; }' is missing the following properties from type 'Highlight': $add, $set, $get, $count, and 32 more.

해결방법

스택오버플로우
RobinBuschmann 깃허브

// 수정전 코드

import { Column, Model, Table, ForeignKey } from 'sequelize-typescript';
import { Page } from 'src/page/page.model';
import { Theme } from 'src/theme/theme.model';
import { User } from 'src/user/user.model';

@Table
export class Highlight extends Model<Highlight> { // 변경할 부분
  @ForeignKey(() => User)
  userId: number;

  @ForeignKey(() => Page)
  pageId: number;

  @Column
  text: string;

  @ForeignKey(() => Theme)
  colorId: number;
}

// 수정후 코드

import { Column, Model, Table, ForeignKey } from 'sequelize-typescript';
import { Page } from 'src/page/page.model';
import { Theme } from 'src/theme/theme.model';
import { User } from 'src/user/user.model';

@Table
export class Highlight extends Model { // 변경된 부분
  @ForeignKey(() => User)
  userId: number;

  @ForeignKey(() => Page)
  pageId: number;

  @Column
  text: string;

  @ForeignKey(() => Theme)
  colorId: number;
}

설명

export class Highlight extends Model<Highlight>
이렇게 코드를 작성하는 방식은 예전 버전을 따르는 것 같다.
export class Highlight extends Model
이렇게 수정하니 바로 해결되었다.

profile
기록하는 백엔드 개발자
post-custom-banner

0개의 댓글