var express = require('express') var path = require('path') var favicon = require('static-favicon') var logger = require('morgan') var cookieParser = require('cookie-parser') var bodyParser = require('body-parser') var routes = require('./routes/index') var app = express() // view engine setup app.set('views', path.join(__dirname, 'views')) app.set('view engine', 'pug') app.use(favicon()) app.use(logger('dev')) app.use(bodyParser.json()) app.use(bodyParser.urlencoded()) app.use(cookieParser()) app.use(require('stylus').middleware(path.join(__dirname, 'style'))) app.use(express.static(path.join(__dirname, 'style'))) app.use(express.static(path.join(__dirname, 'client'))) app.get('/jquery.min.js', (req, res) => { res.sendFile(path.join(__dirname, 'node_modules', 'jquery', 'dist', 'jquery.min.js')) }) app.get('/jquery-ui.structure.min.css', (req, res) => { res.sendFile(path.join(__dirname, 'node_modules', 'jqueryui', 'jquery-ui.structure.min.css')) }) app.get('/jquery-ui.theme.min.css', (req, res) => { res.sendFile(path.join(__dirname, 'node_modules', 'jqueryui', 'jquery-ui.theme.min.css')) }) app.get('/jquery-ui.min.css', (req, res) => { res.sendFile(path.join(__dirname, 'node_modules', 'jqueryui', 'jquery-ui.min.css')) }) app.get('/jquery-ui.min.js', (req, res) => { res.sendFile(path.join(__dirname, 'node_modules', 'jqueryui', 'jquery-ui.min.js')) }) app.use(express.static(path.join(__dirname, 'node_modules', 'viz.js'))) app.use(express.static(path.join(__dirname, 'node_modules', 'socket.io-client', 'dist'))) app.use(express.static(path.join(__dirname, 'node_modules', 'docker.js'))) app.use('/', routes) /// catch 404 and forwarding to error handler app.use(function(req, res, next) { var 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