From 2103163428e9ad801c3a549ab7f792e875a32e1b Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Sat, 12 Apr 2014 12:43:07 -0400 Subject: [PATCH] Upgraded Hackathon Starter to Express 4 --- app.js | 45 ++++++++++++++++++++++++++++++--------------- package.json | 10 ++++++++++ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/app.js b/app.js index 6fabeb9619..5353efe079 100755 --- a/app.js +++ b/app.js @@ -3,7 +3,17 @@ */ var express = require('express'); -var MongoStore = require('connect-mongo')(express); +var cookieParser = require('cookie-parser'); +var compress = require('compression'); +var session = require('express-session'); +var bodyParser = require('body-parser'); +var favicon = require('static-favicon'); +var logger = require('morgan'); +var errorHandler = require('errorhandler'); +var csrf = require('csurf'); +var methodOverride = require('method-override'); + +var MongoStore = require('connect-mongo')({ session: session }); var flash = require('express-flash'); var path = require('path'); var mongoose = require('mongoose'); @@ -57,21 +67,22 @@ app.use(connectAssets({ paths: ['public/css', 'public/js'], helperContext: app.locals })); -app.use(express.compress()); -app.use(express.logger('dev')); -app.use(express.cookieParser()); -app.use(express.json()); -app.use(express.urlencoded()); +app.use(compress()); +app.use(favicon()); +app.use(logger('dev')); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded()); app.use(expressValidator()); -app.use(express.methodOverride()); -app.use(express.session({ +app.use(methodOverride()); +app.use(cookieParser()); +app.use(session({ secret: secrets.sessionSecret, store: new MongoStore({ url: secrets.db, auto_reconnect: true }) })); -app.use(express.csrf()); +app.use(csrf()); app.use(passport.initialize()); app.use(passport.session()); app.use(function(req, res, next) { @@ -90,12 +101,6 @@ app.use(function(req, res, next) { req.session.returnTo = req.path; next(); }); -app.use(app.router); -app.use(function(req, res) { - res.status(404); - res.render('404'); -}); -app.use(express.errorHandler()); /** * Application routes. @@ -182,6 +187,16 @@ app.get('/auth/venmo/callback', passport.authorize('venmo', { failureRedirect: ' res.redirect('/api/venmo'); }); + +// 404 error handler +app.use(function(req, res) { + res.status(404); + res.render('404'); +}); + +// 500 error handler +app.use(errorHandler()); + /** * Start Express server. */ diff --git a/package.json b/package.json index 39c876f1d0..2ac8981740 100755 --- a/package.json +++ b/package.json @@ -18,6 +18,15 @@ "connect-mongo": "^0.4.0", "csso": "^1.3.11", "express": "^4.0.0", + "body-parser": "^1.0.1", + "cookie-parser": "^1.0.1", + "static-favicon": "^1.0.2", + "express-session": "^1.0.2", + "morgan": "^1.0.0", + "csurf": "^1.1.0", + "compression": "^1.0.1", + "errorhandler": "^1.0.0", + "method-override": "^1.0.0", "express-flash": "^0.0.2", "express-validator": "^2.1.1", "fbgraph": "^0.2.10", @@ -45,6 +54,7 @@ "underscore": "^1.6.0", "uglify-js": "^2.4.12", "validator": "^3.8.0" + }, "devDependencies": { "mocha": "^1.18.2",