diff --git a/server.js b/server.js index 80ef9c702411684e66ef659bb28ce5ef89ed3a05..685c25f8c4cbe4ecf4bf3ba03b86429188e67527 100644 --- a/server.js +++ b/server.js @@ -94,6 +94,7 @@ app.get("/cart", isLoggedIn, async (req, res) => { res.status(500).send("Error loading cart."); } }); + app.post("/cart/add", async (req, res) => { if (!req.session.user) { return res.status(401).json({ message: "Please login first." }); @@ -135,21 +136,48 @@ app.post("/cart/add", async (req, res) => { //อัปเดตตะกร้าสินค้า app.post("/cart/update", async (req, res) => { try { + console.log("Request Body:", req.body); // Debug input + const { cartItemId, quantity } = req.body; + + // เช็คว่ามีค่าครบถ้วน + if (!cartItemId || quantity === undefined) { + return res.status(400).json({ message: "Missing cartItemId or quantity" }); + } + + // เช็คว่า quantity เป็นค่าที่ถูกต้อง if (quantity < 1) { return res.status(400).json({ message: "Quantity must be at least 1" }); } - await pool.execute("UPDATE cart_items SET quantity = ? WHERE id = ?", [quantity, cartItemId]); + // ตรวจสอบว่ามี cartItemId อยู่ในฐานข้อมูลจริงหรือไม่ + const [existingItem] = await pool.execute( + "SELECT * FROM cart_items WHERE id = ?", + [cartItemId] + ); + + if (existingItem.length === 0) { + return res.status(404).json({ message: "Cart item not found" }); + } + + // อัปเดตจำนวนสินค้าในตะกร้า + await pool.execute( + "UPDATE cart_items SET quantity = ? WHERE id = ?", + [quantity, cartItemId] + ); + + console.log("Updated Cart:", { cartItemId, quantity }); // Debug success res.json({ success: true, message: "Cart updated" }); + } catch (error) { console.error("Update error:", error); - res.status(500).json({ message: "Update failed" }); + res.status(500).json({ message: "Update failed", error }); } }); + // Register app.get('/register', (req, res) => { res.render('register'); @@ -205,15 +233,6 @@ app.post("/login", async (req, res) => { } }); -// Logout -app.get("/logout", (req, res) => { - req.session.destroy(err => { - if (err) return res.status(500).json({ message: "Logout failed." }); - res.clearCookie('connect.sid', { path: '/' }); // เคลียร์ Cookie อย่างถูกต้อง - res.redirect("/login"); - }); -}); - // ค้นหาสินค้า app.get("/search", async (req, res) => { const searchQuery = req.query.query; @@ -228,6 +247,16 @@ app.get("/search", async (req, res) => { } }); + +// Logout +app.get("/logout", (req, res) => { + req.session.destroy(err => { + if (err) return res.status(500).json({ message: "Logout failed." }); + res.clearCookie('connect.sid', { path: '/' }); // เคลียร์ Cookie อย่างถูกต้อง + res.redirect("/login"); + }); +}); + // Error Handler app.use((err, req, res, next) => { console.error("Unhandled error:", err);