summaryrefslogtreecommitdiffstats
path: root/server/app.js
diff options
context:
space:
mode:
authorJannik Schönartz2018-07-02 21:52:25 +0200
committerJannik Schönartz2018-07-02 21:52:25 +0200
commitaa4e552a03657a63922f5cd085431257c183f458 (patch)
treefc8cd63129bb54b06326c11847a9731fe70f1b33 /server/app.js
downloadbas-aa4e552a03657a63922f5cd085431257c183f458.tar.gz
bas-aa4e552a03657a63922f5cd085431257c183f458.tar.xz
bas-aa4e552a03657a63922f5cd085431257c183f458.zip
[server] Initial commit to add the node server stuff.
Diffstat (limited to 'server/app.js')
-rw-r--r--server/app.js56
1 files changed, 56 insertions, 0 deletions
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;