Upgraded Hackathon Starter to Express 4

This commit is contained in:
Sahat Yalkabov
2014-04-12 12:43:07 -04:00
parent ae5c4b4ad0
commit 2103163428
2 changed files with 40 additions and 15 deletions

45
app.js
View File

@ -3,7 +3,17 @@
*/ */
var express = require('express'); 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 flash = require('express-flash');
var path = require('path'); var path = require('path');
var mongoose = require('mongoose'); var mongoose = require('mongoose');
@ -57,21 +67,22 @@ app.use(connectAssets({
paths: ['public/css', 'public/js'], paths: ['public/css', 'public/js'],
helperContext: app.locals helperContext: app.locals
})); }));
app.use(express.compress()); app.use(compress());
app.use(express.logger('dev')); app.use(favicon());
app.use(express.cookieParser()); app.use(logger('dev'));
app.use(express.json()); app.use(bodyParser.json());
app.use(express.urlencoded()); app.use(bodyParser.urlencoded());
app.use(expressValidator()); app.use(expressValidator());
app.use(express.methodOverride()); app.use(methodOverride());
app.use(express.session({ app.use(cookieParser());
app.use(session({
secret: secrets.sessionSecret, secret: secrets.sessionSecret,
store: new MongoStore({ store: new MongoStore({
url: secrets.db, url: secrets.db,
auto_reconnect: true auto_reconnect: true
}) })
})); }));
app.use(express.csrf()); app.use(csrf());
app.use(passport.initialize()); app.use(passport.initialize());
app.use(passport.session()); app.use(passport.session());
app.use(function(req, res, next) { app.use(function(req, res, next) {
@ -90,12 +101,6 @@ app.use(function(req, res, next) {
req.session.returnTo = req.path; req.session.returnTo = req.path;
next(); next();
}); });
app.use(app.router);
app.use(function(req, res) {
res.status(404);
res.render('404');
});
app.use(express.errorHandler());
/** /**
* Application routes. * Application routes.
@ -182,6 +187,16 @@ app.get('/auth/venmo/callback', passport.authorize('venmo', { failureRedirect: '
res.redirect('/api/venmo'); 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. * Start Express server.
*/ */

View File

@ -18,6 +18,15 @@
"connect-mongo": "^0.4.0", "connect-mongo": "^0.4.0",
"csso": "^1.3.11", "csso": "^1.3.11",
"express": "^4.0.0", "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-flash": "^0.0.2",
"express-validator": "^2.1.1", "express-validator": "^2.1.1",
"fbgraph": "^0.2.10", "fbgraph": "^0.2.10",
@ -45,6 +54,7 @@
"underscore": "^1.6.0", "underscore": "^1.6.0",
"uglify-js": "^2.4.12", "uglify-js": "^2.4.12",
"validator": "^3.8.0" "validator": "^3.8.0"
}, },
"devDependencies": { "devDependencies": {
"mocha": "^1.18.2", "mocha": "^1.18.2",