| var express = require('express'); |
| var path = require('path'); |
| var favicon = require('serve-favicon'); |
| var logger = require('morgan'); |
| var cookieParser = require('cookie-parser'); |
| var bodyParser = require('body-parser'); |
| var serveIndex = require('serve-index'); |
| var serveStatic = require('serve-static') |
| |
| var routes = require('./routes/index'); |
| var users = require('./routes/users'); |
| var dgeusers = require('./dgeusers.json'); |
| console.log("Read these dgeusers: " + JSON.stringify(dgeusers)); |
| |
| var app = express(); |
| |
| // view engine setup |
| app.set('views', path.join(__dirname, 'views')); |
| app.set('view engine', 'ejs'); |
| |
| // uncomment after placing your favicon in /public |
| //app.use(favicon(__dirname + '/public/favicon.ico')); |
| app.use(logger('dev')); |
| app.use(bodyParser.json()); |
| app.use(bodyParser.urlencoded({ extended: false })); |
| app.use(cookieParser()); |
| app.use(express.static(path.join(__dirname, 'public'))); |
| |
| |
| // set up static serving and directory listings for each user's lib/flows directory |
| dgeusers.forEach( function(dgeuser) { |
| console.log("Setting up static serving for " + dgeuser); |
| var sDir = "../users/" + dgeuser + '/flows/shared'; |
| console.log("sDir" + sDir); |
| app.use('/listFlows/'+dgeuser+'/flows/shared', serveIndex(sDir, {'view': 'details', 'icons': true})) |
| }); |
| |
| app.use('/', routes); |
| app.use('/users', users); |
| |
| // catch 404 and forward 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; |