46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
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));
|