왜냐하면 장바구니 테이블에 상품 이미지를 저장하지 않기 때문.
찾아보니 include 함수가 sql 쿼리의 join이랑 같은 거라고 함.
바로 작성 ㄱㄱ
실행 후 에러 발생.
error: Product is not associated to Cart!
문제는 Cart 테이블이 Product와 바로 연결이 되어 있지 않다는 것.
model 파일의 association을 보면 cart가 through로 연결되어 있음.
이것은 product와 user의 관계를 장바구니 테이블을 거쳐가는 것으로 표현하는 것.
(너무 어려움...)
User 테이블과 Product 테이블이 연결되어 있기 때문에
User 테이블에서 Product를 join(=include)해서 가져와야 함.
sequelize include 문법으로 작성하면
동작이 안 된다...?!
테이블을 바꿨으니 컬럼 명도 바꿔줘야 함.
User 모델에서 해당하는 user_id로 변경 필요
class CartsRepository {
getCarts = async (userId) => {
const CartData = await User.findOne({
where: { id: userId },
include: [
{
model: Product,
as: "carts",
},
],
});
return CartData;
};
여기서 필요한 데이터만 뽑아서 골라쓰면 됨.