diff --git a/shop-routes/product.js b/shop-routes/product.js index b9041d845529484d5c7a6134f04a7f1bd39d1dc9..6355f44d64da7da3a190d7b935a36ed84bd2769e 100644 --- a/shop-routes/product.js +++ b/shop-routes/product.js @@ -41,24 +41,31 @@ router.get("/add", (req, res) => { }); // เพิ่มสินค้าใหม่พร้อมรูป -router.post("/add", upload.single("image"), async (req, res) => { // เปลี่ยนจาก "images" เป็น "image" ให้ตรงกับ name ของ input file - console.log("req.file:", req.file); // ตรวจสอบว่า multer ได้รับไฟล์หรือไม่ +router.post('/add', (req, res) => { + console.log('Request Body:', req.body); // Debug - try { - const { name, price, stock, description } = req.body; // เพิ่ม description + // ดึงข้อมูลจาก req.body + const { name, price, description, stock, image_url } = req.body; - const imagePath = "/uploads/" + req.file.filename; + // ตรวจสอบว่าข้อมูลสำคัญครบหรือไม่ + if (!name || !price || stock === undefined) { + return res.status(400).json({ message: 'Missing required fields' }); + } - await pool.execute( - "INSERT INTO products (name, price, stock, description, image_url) VALUES (?, ?, ?, ?, ?)", - [name, price, stock, description, imagePath] // เพิ่ม description - ); + // SQL Query รองรับ stock และ image_url + const sql = 'INSERT INTO products (name, price, description, stock, image_url) VALUES (?, ?, ?, ?, ?)'; + const values = [name, price, description || null, stock, image_url || null]; - res.redirect("/products"); - } catch (error) { - console.error("Error adding product:", error); - res.status(500).send("Error adding product."); - } + console.log('SQL Query:', sql, values); // Debug SQL Query + + connection.query(sql, values, (err, result) => { + if (err) { + console.error('MySQL Insert Error:', err); + return res.status(500).json({ message: 'Database error', error: err }); + } + console.log('Product Added:', result); + res.status(201).json({ message: 'Product added successfully', result }); + }); }); // ดึงข้อมูลสินค้าตาม ID และแสดงหน้าแก้ไข