const post = await Post.create({
content: req.body.content,
UserId: req.user.id, // deserializeUser 실행되면서 req.user에 값을 넣어준다.
});
const fullPost = await Post.findOne({
where: {
id: post.id,
},
include: [
{
model: Image,
},
{
model: Comment,
include: [
{
model: User, // 댓글 작성자
attributes: ["id", "nickname"],
},
],
},
{
model: User, // 게시글 작성자
attributes: ["id", "nickname"],
},
include한 모델들이 어떻게 post에 관한 정보들을
가져 올 수 있는지 궁금합니다.
예를들어 제 생각에는 post에 관한 모델 User를
가지고 올려면 User에
User.findOne({where:{PostId: post.id}})처럼
post에 관한 정보가 있어야 된다고 생각하는데 그런 속성
없이 가져 올 수 있는게 이해가 안갑니다.
그걸 시퀄라이즈가 알아서 해주는 겁니다. post에는 userId가 적혀있고, 시퀄라이즈에 post-user이 belongsTo관계로 엮어있으니까요. JOIN문을 알아서 만들어줍니다.