Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit 97e0ec7b authored by 65160381's avatar 65160381
Browse files

Update 5 files

- /controllers/orderController.js
- /views/order.ejs
- /db.js
- /controllers/registerController.js
- /index.js
parent e16f5dde
Branches
No related tags found
No related merge requests found
Pipeline #541 passed with warnings
exports.showOrderPage = (req, res) => {
if (!req.session.userId) {
req.flash('error', 'คุณต้องเข้าสู่ระบบก่อนถึงจะเพิ่มสินค้าได้');
return res.redirect('/login');
}
res.render('order', { title: 'เพิ่มสินค้า' });
};
// บันทึกสินค้าใหม่
exports.submitOrder = (req, res) => {
const { productName, price, quantity, description } = req.body;
// ตรวจสอบว่าได้กรอกข้อมูลครบหรือไม่
if (!productName || !price || !quantity || !description) {
req.flash('error', 'กรุณากรอกข้อมูลให้ครบถ้วน');
return res.redirect('/order');
}
// สมมุติว่าบันทึกข้อมูลสินค้าในฐานข้อมูล
// ตัวอย่างการใช้ MySQL (ตัวอย่างนี้ใช้ `mysql2`):
const db = require('../db'); // เชื่อมต่อฐานข้อมูล
const query = 'INSERT INTO products (product_name, price, quantity, description) VALUES (?, ?, ?, ?)';
db.execute(query, [productName, price, quantity, description])
.then(() => {
req.flash('success', 'สินค้าได้ถูกเพิ่มเรียบร้อยแล้ว!');
res.redirect('/order');
})
.catch(err => {
req.flash('error', 'เกิดข้อผิดพลาดในการเพิ่มสินค้า');
res.redirect('/order');
});
};
\ No newline at end of file
......@@ -7,7 +7,7 @@ module.exports = {
},
registerUser: async (req, res) => {
const { email, username, rpassword, confirm_password, fname, lname } = req.body;
const { email, rpassword, confirm_password } = req.body;
// ตรวจสอบว่ารหัสผ่านทั้งสองตรงกันหรือไม่
if (rpassword !== confirm_password) {
......@@ -27,8 +27,8 @@ module.exports = {
const hashedPassword = await bcrypt.hash(rpassword, 10);
// บันทึกข้อมูลผู้ใช้ในฐานข้อมูล
const query = 'INSERT INTO users (email, username, password, fname, lname) VALUES (?, ?, ?, ?, ?)';
await pool.execute(query, [email, username, hashedPassword, fname, lname]);
const query = 'INSERT INTO users (email, password) VALUES (?, ?)';
await pool.execute(query, [email, hashedPassword]);
// ส่งข้อความแจ้งเตือนและเปลี่ยนเส้นทางไปที่หน้า login
res.redirect('/login');
......
......@@ -10,6 +10,7 @@ const pool = mysql.createPool({
connectionLimit: 10,
queueLimit: 0
});
db.connect((err) => {
if (err) {
console.error('Error connecting to the database:', err);
......@@ -17,4 +18,5 @@ db.connect((err) => {
console.log('Connected to the database');
}
});
module.exports = pool;
......@@ -25,7 +25,7 @@ const indexController = require('./controllers/indexController');
const loginController = require('./controllers/loginController');
const registerController = require('./controllers/registerController');
const logoutController = require('./controllers/logoutController');
const orderController = require('./controllers/orderController'); // เพิ่ม Controller สำหรับ Order
// เส้นทางหน้าแรก
app.get('/', indexController);
......@@ -41,9 +41,6 @@ app.post('/user/register', registerController.registerUser);
// เส้นทาง Logout
app.get('/logout', logoutController);
// เส้นทาง Order (GET และ POST)
app.get('/order', orderController.showOrderPage); // แสดงหน้าสั่งซื้อ
app.post('/order', orderController.submitOrder); // ส่งคำสั่งซื้อ
// เริ่มต้นเซิร์ฟเวอร์
const port = process.env.PORT || 3000;
......
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>เพิ่มสินค้า</title>
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<h1>เพิ่มสินค้าใหม่</h1>
<% if (flash.error && flash.error.length > 0) { %>
<div class="alert alert-danger">
<%= flash.error %>
</div>
<% } %>
<% if (flash.success && flash.success.length > 0) { %>
<div class="alert alert-success">
<%= flash.success %>
</div>
<% } %>
<form action="/order" method="POST">
<div class="form-group">
<label for="productName">ชื่อสินค้า:</label>
<input type="text" id="productName" name="productName" class="form-control" required>
</div>
<div class="form-group">
<label for="price">ราคา:</label>
<input type="number" id="price" name="price" class="form-control" required>
</div>
<div class="form-group">
<label for="quantity">จำนวน:</label>
<input type="number" id="quantity" name="quantity" class="form-control" required>
</div>
<div class="form-group">
<label for="description">คำอธิบายสินค้า:</label>
<textarea id="description" name="description" class="form-control" required></textarea>
</div>
<button type="submit" class="btn btn-primary">เพิ่มสินค้า</button>
</form>
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment