diff options
Diffstat (limited to 'dgbuilder/dgeflows/app.js')
-rw-r--r-- | dgbuilder/dgeflows/app.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/dgbuilder/dgeflows/app.js b/dgbuilder/dgeflows/app.js new file mode 100644 index 00000000..d2acfec2 --- /dev/null +++ b/dgbuilder/dgeflows/app.js @@ -0,0 +1,73 @@ +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; |