var path = require('path') var createError = require('http-errors') var express = require('express') var cookieParser = require('cookie-parser') var compression = require('compression') var fileUpload = require('express-fileupload') process.env.TZ = 'Europe/Berlin' var app = express() global.__appdir = __dirname // Read permissions from JSON and update the database require('./lib/permissions/index.js') // ############################################################################ // ########################### setup middleware ############################### app.use(compression()) app.use(express.json({ limit: '50mb' })) app.use(express.urlencoded({ extended: false })) var logger = require('morgan') app.use(logger('dev')) app.use(cookieParser()) app.use(fileUpload()) // ############################################################################ // ########################### setup routes ################################## var apiRouter = require(path.join(__dirname, 'router')) app.use('/api', apiRouter) app.use('/files', express.static('public_files')) app.use('/documentation', express.static('public_documentation')) app.use(express.static('public')) app.use('*', express.static('public')) // ############################################################################ // ######################### 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) { console.log(err) // 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