-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
69 lines (58 loc) · 1.95 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import express from 'express'
import mongoose from 'mongoose'
import cors from 'cors'
import dotenv from 'dotenv'
import multer from 'multer'
import helmet from 'helmet'
import morgan from 'morgan'
import path from 'path'
import authRoutes from "./routes/auth.js"
import userRoutes from "./routes/users.js"
import eventRoutes from "./routes/events.js"
import { fileURLToPath } from 'url'
import { register } from "./controllers/auth.js"
import { createEvent } from "./controllers/events.js"
import { verifyToken } from './middleware/auth.js'
import User from './models/User.js'
import Event from './models/Event.js'
// CONFIGURATIONS
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
dotenv.config()
const app = express()
app.use(express.json())
app.use(helmet())
app.use(helmet.crossOriginResourcePolicy({ policy : "cross-origin" }))
app.use(morgan("common"))
app.use(express.json({ limit: "30mb", extended: true }))
app.use(express.urlencoded({ limit: "30mb", extended: true }))
app.use(cors())
app.use("/assets", express.static(path.join(__dirname, 'public/assets')))
// FILE STORAGE
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "public/assets");
},
filename: function (req, file, cb) {
cb(null, file.originalname);
},
})
const upload = multer({ storage });
// ROUTES WITH FILES
app.post("/auth/register", upload.single("picture"), register);
app.post("/events", verifyToken, upload.single("picture"), createEvent)
// ROUTES
app.use("/auth", authRoutes);
app.use("/users", userRoutes);
app.use("/events", eventRoutes);
// MONGOOSE SETUP
const PORT = process.env.PORT || 6001
mongoose
.connect(process.env.MONGO_URL, {
// useNewUrlParse: true,
useUnifiedTopology: true,
})
.then(() => {
app.listen(PORT, () => console.log(`Mongo connected. Server Port: ${PORT}`))
})
.catch((error) => console.log(`${error} did not connect`))