From aa4e552a03657a63922f5cd085431257c183f458 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Mon, 2 Jul 2018 19:52:25 +0000 Subject: [server] Initial commit to add the node server stuff. --- server/app.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 server/app.js (limited to 'server/app.js') diff --git a/server/app.js b/server/app.js new file mode 100644 index 0000000..0a72576 --- /dev/null +++ b/server/app.js @@ -0,0 +1,56 @@ +var createError = require('http-errors'); +var express = require('express'); +var cookieParser = require('cookie-parser'); +var compression = require('compression'); + +var path = require('path'); +var fs = require('fs'); + +var app = express(); + +global.__appdir = __dirname; + +var tftp = require('./lib/tftp'); + +// ############################################################################ +// ########################### setup middleware ############################### + +app.use(compression()); +app.use(express.json()); +app.use(express.urlencoded({ extended: false })); + +var logger = require('morgan'); +app.use(logger('dev')); +app.use(cookieParser()); + +// ############################################################################ +// ########################### setup routes ################################## + +app.use(express.static('public')); + +var apiRouter = require(path.join(__dirname, 'router')); +app.use('/api', apiRouter); + +// ############################################################################ +// ######################### handle http errors ############################### + +// catch 404 and forward to error handler +app.use(function(req, res, next) { + next(createError(404)); +}); + +// error handler +app.use(function(err, req, res, next) { + // set locals, only providing error in development + res.locals.message = err.message; + res.locals.error = req.app.get('env') === 'development' ? err : {}; + + // render the error page + res.status(err.status || 500); + res.end(); +}); + +// ############################################################################ +// ############################################################################ + +module.exports = app; -- cgit v1.2.3-55-g7522