const express = require("express"); const path = require("path"); const cors = require("cors"); const mongoose = require("mongoose"); const cookieParser = require("cookie-parser"); require("dotenv").config(); const indexRouter = require("./routes/index.js"); const postRouter = require("./routes/post.js"); const userRouter = require("./routes/user.js"); const app = express(); // get db const mongoDB = `mongodb+srv://${process.env.USER}:${process.env.PASS}@odin.eftl02o.mongodb.net/blogAPI?retryWrites=true&w=majority`; // or throw error main().catch((err) => console.log(err)); async function main() { await mongoose.connect(mongoDB); } // set paths app.use( "/styles/css", express.static(path.join(__dirname, "node_modules/bootstrap/dist/css")) ); app.use(express.static(path.join(__dirname, "public"))); // view engine setup app.set("views", path.join(__dirname, "views")); app.set("view engine", "ejs"); // parsing app.use(cookieParser()); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(express.static(path.join(__dirname, "public"))); // cors app.use( cors({ origin: true, credentials: true, methods: ["GET", "PUT", "POST", "DELETE"], allowedHeaders: [ "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept", ], preflightContinue: true, }) ); // routing app.use("/", indexRouter); app.use("/post", postRouter); app.use("/user", userRouter); module.exports = app;