const express = require('express'); const bodyParser = require('body-parser'); const session = require('express-session'); const flash = require('connect-flash'); global.loggedIn = null const app = express(); app.use(express.static('public')); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(bodyParser.urlencoded({ extended: true })); app.use(session({ secret: 'secretkey', resave: true, saveUninitialized: true })); app.use(flash()); app.set('view engine', 'ejs'); app.use('*', (req, res, next) => { loggedIn = req.session.userId next() }); const indexController = require('./controllers/indexController'); const loginController = require('./controllers/loginController'); const registerController = require('./controllers/registerController'); const logoutController = require('./controllers/logoutController'); const productController = require('./controllers/productController'); const cartController = require('./controllers/cartController'); app.get('/', indexController.getProducts); app.get('/login', loginController.showLoginPage); app.post('/user/login', loginController.loginUser); app.get('/register', registerController.showRegisterPage); app.post('/user/register', registerController.registerUser); app.post('/user/register', registerController.registerUser); app.get('/logout', logoutController); app.get('/product/:id', indexController.getProductDetail); app.get('/addProduct', productController.showAddProductForm); app.post('/addProduct', productController.createProduct); app.post('/delete_product/:id', productController.deleteProduct); app.get('/products/:id/edit', productController.showUpdateProductForm); app.post('/products/:id/update', productController.updateProduct); app.get('/search', productController.searchProducts); app.post('/cart/add', cartController.addToCart); app.get('/cart', cartController.viewCart); app.post('/cart/remove/:id', cartController.removeFromCart); app.post('/checkout', cartController.checkout); app.get('/orderConfirmation', (req,res) => { res.render('orderConfirmation'); }); app.get('/orderHistory', productController.orderHistory); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); });