문제발생
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.
해결방법
// 수정전 코드
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
이렇게 수정하니 바로 해결되었다.