[✏️ Error-Handling] Sequelize Foreign key 관련 에러_2
Opened this issue · 0 comments
dltmddus1998 commented
어떤 에러인가요?
- 데이터베이스 테이블 간 참조로 인한 추가 불가 에러
- 비슷한 에러 핸들링 로그 : #48
에러 메시지
에러 핸들링 방법
server/controller/beans/new.js
에서 콘솔을 찍어보니 accessToken.id
부분이 Users
테이블에 나오는 해당 사용자의 id
와는 다르게 나와서 '콩주머니 작성'에서 데이터베이스에 데이터가 들어가지 않았다.
따라서 코드를 다음과 같이 수정했다.
// 원래 코드
... 생략
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' });
},
};
// 수정된 코드
... 생략
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' });
},
};