-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
58 lines (51 loc) · 1.43 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
/* eslint-disable no-console */
import Koa from 'koa';
import Router from 'koa-router';
import bodyParser from 'koa-bodyparser';
import logger from 'koa-logger';
import multer from './middleware/multer';
import passport from './middleware/passport';
import s3 from './middleware/s3';
import session from './middleware/session';
import staticServer from './middleware/staticServer';
import webpack from './middleware/webpack';
import views from './middleware/views';
import start from './app';
import favicon from './middleware/favicon';
const app = new Koa();
const router = new Router();
const env = process.env.NODE_ENV || 'dev';
// Session secret
app.keys = ['wNxB5QD5W_x5CfbhNjvaVMJ-'];
session(app);
favicon(app);
app.use(bodyParser());
multer(router);
passport(app, router);
s3(app, router);
if (env !== 'production') {
webpack(app);
app.use(logger());
}
views(app);
staticServer(app, router);
router
// .get('/', ctx => ctx.redirect('/default'))
.get('/', (ctx) => {
ctx.state.room = 'default';
return ctx.render('./index.pug');
})
.get('/:room', (ctx) => {
if (!ctx.isAuthenticated()) {
ctx.session.redirectTo = ctx.req.url;
return ctx.redirect('/login');
}
ctx.state.room = ctx.params.room;
return ctx.render('./rooms.pug');
});
const port = process.env.PORT || 3000;
const server = app.listen(port, (err) => {
if (err) console.log(err);
});
start(server);
console.log(`Listening on port ${port}`);