diff options
author | Noah Loomans <noahloomans@gmail.com> | 2017-09-13 16:28:53 +0200 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2017-09-13 16:28:53 +0200 |
commit | 3fb86482404e11942cd83c3500a297a3991db0e4 (patch) | |
tree | c5e7261de72c2b7f871580784525d06d036a6219 /src/server/app.js | |
parent | 5aac32f72eca8c66e879583ce653d07bb3c7370f (diff) |
Restructure project
Diffstat (limited to 'src/server/app.js')
-rw-r--r-- | src/server/app.js | 62 |
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 |