-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.js
64 lines (54 loc) · 1.75 KB
/
server.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
// set up server dependencies
const express = require('express');
const app = express();
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
const mongoose = require('mongoose');
const cors = require('cors');
const path = require('path');
const cookieParser = require('cookie-parser');
require('dotenv/config');
// routes;
let classRouter = require('./routes/class');
let userRouter = require('./routes/user');
// middlewares;
app.use(cors());
app.use(express.json());
app.use(cookieParser());
// connect to DB
mongoose.connect(process.env.DB, {
useNewUrlParser: true,
useUnifiedTopology: true,
dbName: 'steezyDb'
})
.then(() => console.log('db connected!'))
.catch(err => console.log(`db connection error: ${err.message}`))
// reuse current mongoose connection for session store
app.use(session({
store: new MongoStore({
mongooseConnection: mongoose.connection
}),
secret: process.env.SECRET,
resave: true,
saveUninitialized: false,
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7 * 2, // two weeks
}
}));
// mount routers || must be last middleware mounted
// https://stackoverflow.com/questions/39796228/req-session-is-undefined-using-express-session
app.use(classRouter);
app.use(userRouter);
// method for updating Class fields (like youtube url)
// m = require("./controllers/classController")
// m.updateAll();
/*
** NOTE: ONLY UNCOMMENT THE LINES BELOW ONCE YOU'RE READY
** TO SERVE THE REACT BUILD
*/
// **serve static assets from client
// app.use(express.static(path.join(__dirname, 'client/build')))
// app.get('*', (req, res) => {
// res.sendFile(path.join(__dirname + '/client/build/index.html'))
// })
app.listen(process.env.PORT, () => console.log(`listening on port ${process.env.PORT}`));