codestates / codestates/EmotiPop
[✏️ Error-Handling] Sequelize Foreign key 관련 에러_2
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
### **어떤 에러인가요?**
- 데이터베이스 테이블 간 참조로 인한 추가 불가 에러
- 비슷한 에러 핸들링 로그 : https://github.com/codestates/EmotiPop/issues/48
### **에러 메시지**

### **에러 핸들링 방법**
`server/controller/beans/new.js` 에서 콘솔을 찍어보니 `accessToken.id` 부분이 `Users` 테이블에 나오는 해당 사용자의 `id`와는 다르게 나와서 '콩주머니 작성'에서 데이터베이스에 데이터가 들어가지 않았다.
따라서 코드를 다음과 같이 수정했다.
```jsx
// 원래 코드
... 생략
const findUser = await Users.findOne({
attributes: { exclude: ['password'] },
where: {
email: accessTokenData.email,
},
});
const { emotions, emotion_level, contents, gourdkinds } = req.body;
// console.log(data);
const data = {
emotions,
emotion_level,
contents,
gourdKinds: gourdkinds,
users_id: accessTokenData.id,
};
await Beans.create({ ...data });
const newContent = await Beans.findOne({
where: { emotions, emotion_level, contents, gourdKinds: gourdkinds, users_id: accessTokenData.id },
});
res.send({ data: newContent.dataValues, message: 'ok' });
},
};
```
```jsx
// 수정된 코드
... 생략
const findUser = await Users.findOne({
attributes: { exclude: ['password'] },
where: {
email: accessTokenData.email,
},
});
const { emotions, emotion_level, contents, gourdkinds } = req.body;
// console.log(data);
const data = {
emotions,
emotion_level,
contents,
gourdKinds: gourdkinds,
users_id: findUser.dataValues.id,
};
await Beans.create({ ...data });
const newContent = await Beans.findOne({
where: { emotions, emotion_level, contents, gourdKinds: gourdkinds, users_id: findUser.dataValues.id },
});
// console.log(newContent);
res.send({ data: newContent.dataValues, message: 'ok' });
},
};
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.