const path = require("path"); const express = require("express"); const bodyParser = require("body-parser"); const mongoose = require("mongoose"); const errorController = require("./controllers/error"); const User = require("./models/user"); const app = express(); app.set("view engine", "ejs"); app.set("views", "views"); const adminRoutes = require("./routes/admin"); const shopRoutes = require("./routes/shop"); app.use(bodyParser.urlencoded({ extended: false })); app.use(express.static(path.join(__dirname, "public"))); mongoose .connect(process.env.MONGO_URL || "mongodb://mongo:27017/shop") .then(async () => { let user = await User.findOne(); if (!user) { user = new User({ name: "Jawad", email: "jawad@test.com", cart: { items: [] }, }); await user.save(); } app.use((req, res, next) => { req.user = user; next(); }); app.use("/admin", adminRoutes); app.use(shopRoutes); app.use(errorController.get404); app.listen(3000, "0.0.0.0"); }) .catch((err) => console.log(err));