사고쳤어요
[도서 쇼핑몰] Node.js - 장바구니 API 구현 본문
장바구니 추가
// 장바구니 추가
const addCartItems = (req, res) => {
const { book_id, counts, user_id } = req.body;
const sql = `INSERT INTO cart_items (book_id, counts, user_id) VALUES (?, ?, ?);`;
const values = [book_id, counts, user_id];
conn.query(sql, values, (err, results) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).json({
msg: `Error: ${err.code}`,
});
}
return res.status(StatusCodes.CREATED).json(results);
});
};
장바구니 조회(선택된 아이템들)
// 장바구니 아이템 목록 조회
const getCartItems = (req, res) => {
const { user_id, selected } = req.body;
const sql = `SELECT cart_items.id, book_id, title, summary, counts, price
FROM cart_items LEFT JOIN books
ON cart_items.book_id = books.id
WHERE user_id = ? AND cart_items.id IN (?);`;
const values = [user_id, selected];
conn.query(sql, values, (err, results) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).json({
msg: `Error: ${err.code}`,
});
}
return res.status(StatusCodes.OK).json(results);
});
};
참고로 selected는 장바구니에서 선택한 도서들을 의미한다. (계산 주문서로 전달해주기 위해)
즉 user_id가 1인 사람이 장바구니에서 book_id가 1번, 3번인 도서를 체크하여 조회할 때
user_id = 1, selected = [1, 3]이 되는 것이다.
장바구니 제거
// 장바구니 제거
const removeCartItems = (req, res) => {
const { id } = req.body;
const sql = `DELETE FROM cart_items WHERE id = ?;`;
const values = [id];
conn.query(sql, values, (err, results) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).json({
msg: `Error: ${err.code}`,
});
}
return res.status(StatusCodes.OK).json(results);
});
};
'웹 풀스택' 카테고리의 다른 글
[Node.js] Promise와 비동기 처리 (0) | 2025.03.19 |
---|---|
[도서 쇼핑몰] Node.js - 주문 API 구현(mysql 비동기 처리) (0) | 2025.03.18 |
[도서 쇼핑몰] Node.js - 도서 조회 시 좋아요 개수, 여부 함께 보내주기 (0) | 2025.03.14 |
[도서 쇼핑몰] Node.js - 좋아요 API 구현 (0) | 2025.03.14 |
[도서 쇼핑몰] Node.js - 도서 조회 페이지네이션 구현 (0) | 2025.03.13 |