codestates / codestates/AnimalChat

[Error Handling] 시퀄라이즈 관계 설정 오류

Open
#100 0 comments 0 reactions 0 assignees View on GitHub
error server
Dominant language
JavaScript
Stars
0
Forks
3
PR merge metrics
No merged PRs in 30d

Description

## 어떤 에러인가요?
- 데이터베이스 관계 설정시 나오는 오류때문에 서버가 실행이 안됨

## 에러 메시지
```jsx
//post.js에 문제가 있는 것으로 보임
/Users/seonhwa/Desktop/codestates31/AnimalChat/server/node_modules/sequelize/lib/associations/belongs-to-many.js:284
const targetKeyType = targetKey.type;
^

TypeError: Cannot read property 'type' of undefined
at BelongsToMany._injectAttributes (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/node_modules/sequelize/lib/associations/belongs-to-many.js:284:37)
at Function.belongsToMany (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/node_modules/sequelize/lib/associations/mixin.js:67:17)
at Function.associate (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/models/post.js:23:12)
at /Users/seonhwa/Desktop/codestates31/AnimalChat/server/models/index.js:30:19
at Array.forEach ()
at Object. (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/models/index.js:28:17)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
```

```jsx
//user.js에 문제가 있는 것으로 보임
/Users/seonhwa/Desktop/codestates31/AnimalChat/server/node_modules/sequelize/lib/associations/belongs-to-many.js:284
const targetKeyType = targetKey.type;
^

TypeError: Cannot read property 'type' of undefined
at BelongsToMany._injectAttributes (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/node_modules/sequelize/lib/associations/belongs-to-many.js:284:37)
at Function.belongsToMany (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/node_modules/sequelize/lib/associations/mixin.js:67:17)
at Function.associate (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/models/user.js:30:12)
at /Users/seonhwa/Desktop/codestates31/AnimalChat/server/models/index.js:30:19
at Array.forEach ()
at Object. (/Users/seonhwa/Desktop/codestates31/AnimalChat/server/models/index.js:28:17)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
```

## 에러 핸들링 방법
- post와 user 파일의 관계설정에 오류가 있었던 것으로 보여서 아래처럼 다시 수정함.
```jsx
//수정전
post.js
post.belongsToMany(models.comment, {
through: 'comment'
})
user.belongsToMany(models.post_user, {
through: 'post_user'
})

//수정
post.hasMany(models.comment, {
foreignKey: 'comment_user_id'
})
post.hasMany(models.post_user, {
foreignKey: 'userId'
})

```

```jsx
//수정전
user.hasMany(models.animal, {
foreignKey: 'userId'
})
user.belongsToMany(models.comment, {
through: 'comment'
})
user.belongsToMany(models.post_user, {
through: 'post_user'
})

//수정
user.hasMany(models.animal, {
foreignKey: 'userId'
})
user.hasMany(models.comment, {
foreignKey: 'id'
})
user.hasMany(models.post_user, {
foreignKey: 'post_id'
})

```

## 에러 핸들링을 위해 참고한 레퍼런스 링크
[공홈](https://sequelize.org/master/manual/assocs.html#many-to-many-relationships)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.