SequelizeEagerLoadingError: 관계가 있는 두 테이블을 join할때, alias 작성오류 에러

Creating the dots·2021년 11월 30일
0

project-3-ShallWeHealth

목록 보기
13/26

어떤 에러?

  • associations 관계가 있는 두 테이블을 include로 join할때, alias를 작성합니다. 이때, as에 작성하는 alias를 잘못 작성했을때 발생하는 에러입니다.

에러 메시지

UnhandledPromiseRejectionWarning: SequelizeEagerLoadingError: 
User is associated to Issue using an alias. You've included an alias (targets), 
but it does not match the alias(es) defined in your association (reports).

에러 핸들링 방법

  • model 폴더 내 두 파일(테이블은 두개가 associate되므로 파일 2개를 모두 확인해야합니다)에 alias가 설정되어있는지 확인합니다. (저는 테이블명을 잘못 작성해 오류가 발생했습니다. 오타가 있는지, 테이블을 잘못 작성하진 않았는지 확인이 필요합니다.)
//models > issue.js 
    static associate(models) {
      // define association here
      Issue.belongsTo(models.Post, {
        foreignKey: "postId",
        as: "posts",
        onDelete: "SET NULL",
      });
      Issue.belongsTo(models.User, {
        foreignKey: "reporterId",
        as: "reports",
        onDelete: "SET NULL",
      });
      Issue.belongsTo(models.User, { //이 부분을 models.Post로 잘못 작성해서 에러가 발생했습니다.
        foreignKey: "targetId",
        as: "targets",
        onDelete: "SET NULL",
      });
    }
profile
어제보다 나은 오늘을 만드는 중

0개의 댓글