-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
83 lines (70 loc) · 2.11 KB
/
server.js
File metadata and controls
83 lines (70 loc) · 2.11 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
const express = require('express')
const next = require('next')
const bodyParser = require('body-parser')
const passport = require('passport')
const config = require('./config')
const authRoutes = require('./routes/auth')
require('./models').connect(config.dbUri)
const dev = process.env.NODE_ENV !== 'production'
const app = next({
dev
})
const handle = app.getRequestHandler()
const api = require('./routes/api.js')
const indexroute = require('./routes/index')
const localSignupStrategy = require('./routes/passport/local-signup')
const localLoginStrategy = require('./routes/passport/local-login')
const server = express()
const port = !dev ? 80 : 3000
server.use(bodyParser.json())
server.use(passport.initialize())
passport.use('local-signup', localSignupStrategy)
passport.use('local-login', localLoginStrategy)
server.use('/auth', authRoutes)
server.use('/api', api)
server.use('/upload', indexroute)
server.use(express.static('public'))
/*
* Socket IO start
* 나중에 소켓IO 파일을 만들어서 관리하는게 더 좋을 듯
*/
const httpServer = require('http').Server(server)
const io = require('socket.io')(httpServer)
io.on('connection', socket => {
socket.on('playerTimeCheker', data => {
//TODO:나중에 여기에 타임아웃이 나면 디비로 정보를 전달
console.log(data)
})
socket.on('disconnect', data => {
console.log(`Connection diconnect : ${data}`)
})
})
/*
* Socket IO End
*
*/
app
.prepare()
.then(() => {
server.get('/player/:uid', (req, res) => {
const actualPage = '/player'
const queryParams = { uid: req.params.uid }
app.render(req, res, actualPage, queryParams)
})
server.get('/video:category', (req, res) => {
const actualPage = '/video'
const queryParams = { category: res.params.category }
app.render(req, res, actualPage, queryParams)
})
server.get('*', (req, res) => {
return handle(req, res)
})
httpServer.listen(port, err => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
.catch(ex => {
console.error(ex.stack)
process.exit(1)
})