diff options
author | Marvin Borner | 2019-03-05 13:57:17 +0100 |
---|---|---|
committer | Marvin Borner | 2019-03-05 13:57:17 +0100 |
commit | d961b7a75bf3f0d25339214e1a9535533a25fd36 (patch) | |
tree | 8bec8d9c57108b3cbfc8fd612fcce805632cac00 /app.js | |
parent | 32b83c0fca73a83d51f6c6dbe7378a3cdc75703b (diff) |
Refactored code structure
Diffstat (limited to 'app.js')
-rw-r--r-- | app.js | 56 |
1 files changed, 56 insertions, 0 deletions
@@ -0,0 +1,56 @@ +/* + * app.js + * Copyright (c) 2019, Texx + * License: MIT + * See https://github.com/texxme/Texx/blob/master/LICENSE + */ + +import { ExpressPeerServer } from 'peer'; +import express, { Router } from 'express'; +import path from 'path'; +import logger from 'morgan'; +import bodyParser from 'body-parser'; + +const app = express(); +app.disable('x-powered-by'); + +const routes = Router(); +const server = app.listen(8080, '0.0.0.0'); +const peerServer = ExpressPeerServer(server, { debug: true }); + +peerServer.on('connection', id => console.log(`New connection: ${id}`)); + +routes.get('/', (req, res) => { + res.render('index'); +}); +app.use('/api', peerServer); + +// View engine setup +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'pug'); + +app.use(logger('dev', { + skip: () => app.get('env') === 'test', +})); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: false })); +app.use(express.static(path.join(__dirname, 'dist'))); + +// Routes +app.use('/', routes); + +// Catch 404 and forward to error handler +app.use((req, res, next) => { + const err = new Error('Not Found'); + err.status = 404; + next(err); +}); + +// Error handler +app.use((err, req, res, next) => { // eslint-disable-line no-unused-vars + res + .status(err.status || 500) + .render('error', { + message: err.message, + }); +}); |