diff --git a/shop-routes/product.js b/shop-routes/product.js index 1047cd2124fe44402903f6836ee25c1941491a2c..b1ddf2017b1373cffb9a1527963b5227ec853cb4 100644 --- a/shop-routes/product.js +++ b/shop-routes/product.js @@ -4,6 +4,7 @@ const multer = require("multer"); const path = require("path"); const fs = require("fs"); + const router = express.Router(); // เธ•เธฑเนเธเธเนเธฒเธ—เธตเนเน€เธเนเธเนเธเธฅเนเธฃเธนเธ @@ -18,7 +19,7 @@ const storage = multer.diskStorage({ cb(null, uploadDir); }, filename: (req, file, cb) => { - cb(null, Date.now() + path.extname(file.originalname)); + cb(null, Date.now() + path.extname(file.originalname)); // เธ•เธฑเนเธเธเธทเนเธญเนเธเธฅเนเน€เธเนเธ timestamp } }); const upload = multer({ storage: storage }); @@ -29,7 +30,7 @@ router.get("/", async (req, res) => { const [products] = await pool.execute("SELECT * FROM products"); res.render("product", { products }); } catch (error) { - console.error("โ Error fetching products:", error); + console.error("Error fetching products:", error); res.status(500).send("Error loading products."); } }); @@ -41,7 +42,8 @@ router.get("/add", (req, res) => { // เน€เธเธดเนเธกเธชเธดเธเธเนเธฒเนเธซเธกเนเธเธฃเนเธญเธกเธฃเธนเธ router.post("/add", upload.single("image"), async (req, res) => { - console.log("๐“ธ Uploaded file:", req.file); + console.log("Received Data:", req.body); // เน€เธเนเธเธเนเธฒเธ—เธตเนเธชเนเธเธกเธฒ + console.log("Uploaded file:", req.file); // เน€เธเนเธเธงเนเธฒ multer เนเธ”เนเนเธเธฅเนเนเธซเธก try { const { name, price, stock, description } = req.body; @@ -49,9 +51,10 @@ router.post("/add", upload.single("image"), async (req, res) => { const stockNum = parseInt(stock, 10); if (isNaN(priceNum) || isNaN(stockNum)) { - return res.status(400).send("โ Price and stock must be valid numbers."); + return res.status(400).send("Price and stock must be valid numbers."); } + // เธ–เนเธฒเนเธกเนเธกเธตเธเธฒเธฃเธญเธฑเธเนเธซเธฅเธ”เนเธเธฅเน เนเธซเน imagePath เน€เธเนเธ null const imagePath = req.file ? "/uploads/" + req.file.filename : null; await pool.execute( @@ -61,7 +64,7 @@ router.post("/add", upload.single("image"), async (req, res) => { res.redirect("/products"); } catch (error) { - console.error("โ Error adding product:", error); + console.error("Error adding product:", error); res.status(500).send("Error adding product."); } }); @@ -71,11 +74,11 @@ router.get("/edit/:id", async (req, res) => { try { const [rows] = await pool.execute("SELECT * FROM products WHERE id = ?", [req.params.id]); if (rows.length === 0) { - return res.status(404).send("โ เนเธกเนเธเธเธชเธดเธเธเนเธฒ"); + return res.status(404).send("เนเธกเนเธเธเธชเธดเธเธเนเธฒ"); } res.render("product_edit", { product: rows[0] }); } catch (error) { - console.error("โ Error fetching product:", error); + console.error("Error fetching product:", error); res.status(500).send("Error loading product."); } }); @@ -83,32 +86,34 @@ router.get("/edit/:id", async (req, res) => { // เธญเธฑเธเน€เธ”เธ•เธเนเธญเธกเธนเธฅเธชเธดเธเธเนเธฒ router.post("/edit/:id", upload.single("image"), async (req, res) => { try { - const { name, price, stock, description, oldImage } = req.body; - const priceNum = parseFloat(price); - const stockNum = parseInt(stock, 10); - - if (isNaN(priceNum) || isNaN(stockNum)) { - return res.status(400).send("โ Price and stock must be valid numbers."); - } + const { name, price, stock, description } = req.body; + let imagePath = req.body.oldImage; // เนเธเนเธฃเธนเธเน€เธ”เธดเธกเธ–เนเธฒเนเธกเนเธกเธตเธเธฒเธฃเธญเธฑเธเนเธซเธฅเธ”เนเธซเธกเน - // เนเธเนเธฃเธนเธเน€เธ”เธดเธก เธ–เนเธฒเนเธกเนเนเธ”เนเธญเธฑเธเนเธซเธฅเธ”เนเธซเธกเน - let imagePath = oldImage || null; + // เธ–เนเธฒเธกเธตเธเธฒเธฃเธญเธฑเธเนเธซเธฅเธ”เธฃเธนเธเนเธซเธกเน เนเธซเนเนเธเนเนเธเธฅเนเนเธซเธกเน if (req.file) { imagePath = "/uploads/" + req.file.filename; } - console.log("๐ Updating Product:", { name, priceNum, stockNum, description, imagePath, id: req.params.id }); + console.log("Update values:", { name, price, stock, description, imagePath, id: req.params.id }); await pool.execute( "UPDATE products SET name=?, price=?, stock=?, description=?, image_url=? WHERE id=?", - [name ?? null, priceNum ?? null, stockNum ?? null, description ?? null, imagePath, req.params.id] + [ + name ?? null, + price ?? null, + stock ?? null, + description ?? null, + imagePath ?? null, + req.params.id ?? null + ] ); - res.redirect("/products"); + res.redirect("/products"); // เธเธฅเธฑเธเนเธเธขเธฑเธเธซเธเนเธฒเธฃเธฒเธขเธเธฒเธฃเธชเธดเธเธเนเธฒ } catch (error) { - console.error("โ Error updating product:", error); + console.error("Error updating product:", error); res.status(500).send("Error updating product."); } }); + module.exports = router;