-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
48 lines (36 loc) · 1.2 KB
/
app.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
// init .env
require('dotenv').config()
const compression = require('compression')
const express = require('express')
const cookieSession = require('cookie-session')
const passport = require('passport')
// set up web push to send notifications
const webpush = require('web-push')
webpush.setGCMAPIKey(process.env.FCM_KEY)
webpush.setVapidDetails('mailto:' + process.env.EMAIL, process.env.VAPID_PUBLIC, process.env.VAPID_PRIVATE)
// load all database related stuff
require('./src/db')
require('./src/passport')
// create express server
const app = express()
// use compression
app.use(compression())
// set up login sessions
const session = cookieSession({
maxAge: 365 * 24 * 60 * 60 * 1000,
keys: [process.env.COOKIE_KEY],
})
app.use(session)
// handle url parameters
app.use(express.urlencoded({ extended: true }))
app.use(express.json())
// initialize passport.js
app.use(passport.initialize())
app.use(passport.session())
// create the server and initialize socket.io
const server = require('http').createServer(app)
const io = require("socket.io")(server)
// handle routes and logic
require('./src/logic')(app, io, session, webpush);
// Start the server on the given port
server.listen(process.env.PORT || 8080)