aboutsummaryrefslogtreecommitdiff
path: root/src/server/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/app.js')
-rw-r--r--src/server/app.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/server/app.js b/src/server/app.js
new file mode 100644
index 0000000..36d7e26
--- /dev/null
+++ b/src/server/app.js
@@ -0,0 +1,62 @@
+const express = require('express')
+const path = require('path')
+const logger = require('morgan')
+const cookieParser = require('cookie-parser')
+const bodyParser = require('body-parser')
+const compression = require('compression')
+
+const routes = require('./routes/index')
+const getSchedule = require('./routes/getSchedule')
+const manifest = require('./routes/manifest')
+
+const app = express()
+
+app.use(compression())
+
+// view engine setup
+app.set('views', path.join(__dirname, '../client/views'))
+app.set('view engine', 'jade')
+
+app.use(logger('dev'))
+app.use(bodyParser.json())
+app.use(bodyParser.urlencoded({ extended: false }))
+app.use(cookieParser())
+
+app.use('/manifest.webmanifest', manifest)
+app.use(express.static(path.join(__dirname, '../client/static')))
+
+app.use('/', routes)
+app.use('/get', getSchedule)
+
+// catch 404 and forward to error handler
+app.use(function (req, res, next) {
+ const err = new Error('Not Found')
+ err.status = 404
+ next(err)
+})
+
+// error handlers
+
+// development error handler
+// will print stacktrace
+if (app.get('env') === 'development') {
+ app.use(function (err, req, res, next) {
+ res.status(err.status || 500)
+ res.render('error', {
+ message: err.message,
+ error: err
+ })
+ })
+}
+
+// production error handler
+// no stacktraces leaked to user
+app.use(function (err, req, res, next) {
+ res.status(err.status || 500)
+ res.render('error', {
+ message: err.message,
+ error: {}
+ })
+})
+
+module.exports = app