Merge branch 'express4routes'

This commit is contained in:
Sahat Yalkabov
2014-06-06 15:35:30 -04:00
2 changed files with 15 additions and 13 deletions

19
app.js
View File

@ -21,7 +21,7 @@ var expressValidator = require('express-validator');
var connectAssets = require('connect-assets'); var connectAssets = require('connect-assets');
/** /**
* Load controllers. * Controllers (route handlers).
*/ */
var homeController = require('./controllers/home'); var homeController = require('./controllers/home');
@ -30,7 +30,7 @@ var apiController = require('./controllers/api');
var contactController = require('./controllers/contact'); var contactController = require('./controllers/contact');
/** /**
* API keys + Passport configuration. * API keys and Passport configuration.
*/ */
var secrets = require('./config/secrets'); var secrets = require('./config/secrets');
@ -43,7 +43,7 @@ var passportConf = require('./config/passport');
var app = express(); var app = express();
/** /**
* Mongoose configuration. * Connect to MongoDB.
*/ */
mongoose.connect(secrets.db); mongoose.connect(secrets.db);
@ -68,11 +68,11 @@ var whitelist = ['/url1', '/url2'];
app.set('port', process.env.PORT || 3000); app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views')); app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade'); app.set('view engine', 'jade');
app.use(compress());
app.use(connectAssets({ app.use(connectAssets({
paths: ['public/css', 'public/js'], paths: ['public/css', 'public/js'],
helperContext: app.locals helperContext: app.locals
})); }));
app.use(compress());
app.use(logger('dev')); app.use(logger('dev'));
app.use(bodyParser.json()); app.use(bodyParser.json());
app.use(bodyParser.urlencoded()); app.use(bodyParser.urlencoded());
@ -111,7 +111,7 @@ app.use(function(req, res, next) {
app.use(express.static(path.join(__dirname, 'public'), { maxAge: week })); app.use(express.static(path.join(__dirname, 'public'), { maxAge: week }));
/** /**
* Application routes. * Main routes.
*/ */
app.get('/', homeController.index); app.get('/', homeController.index);
@ -132,6 +132,10 @@ app.post('/account/password', passportConf.isAuthenticated, userController.postU
app.post('/account/delete', passportConf.isAuthenticated, userController.postDeleteAccount); app.post('/account/delete', passportConf.isAuthenticated, userController.postDeleteAccount);
app.get('/account/unlink/:provider', passportConf.isAuthenticated, userController.getOauthUnlink); app.get('/account/unlink/:provider', passportConf.isAuthenticated, userController.getOauthUnlink);
/**
* API examples routes.
*/
app.get('/api', apiController.getApi); app.get('/api', apiController.getApi);
app.get('/api/lastfm', apiController.getLastfm); app.get('/api/lastfm', apiController.getLastfm);
app.get('/api/nyt', apiController.getNewYorkTimes); app.get('/api/nyt', apiController.getNewYorkTimes);
@ -157,7 +161,7 @@ app.get('/api/instagram', passportConf.isAuthenticated, passportConf.isAuthorize
app.get('/api/yahoo', apiController.getYahoo); app.get('/api/yahoo', apiController.getYahoo);
/** /**
* OAuth routes for sign-in. * OAuth sign-in routes.
*/ */
app.get('/auth/instagram', passport.authenticate('instagram')); app.get('/auth/instagram', passport.authenticate('instagram'));
@ -186,7 +190,7 @@ app.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRe
}); });
/** /**
* OAuth routes for API examples that require authorization. * OAuth authorization routes for API examples.
*/ */
app.get('/auth/foursquare', passport.authorize('foursquare')); app.get('/auth/foursquare', passport.authorize('foursquare'));
@ -204,7 +208,6 @@ app.get('/auth/venmo/callback', passport.authorize('venmo', { failureRedirect: '
/** /**
* 500 Error Handler. * 500 Error Handler.
* As of Express 4.0 it must be placed at the end, after all routes.
*/ */
app.use(errorHandler()); app.use(errorHandler());

View File

@ -177,22 +177,21 @@ exports.postUpdatePassword = function(req, res, next) {
/** /**
* POST /account/delete * POST /account/delete
* Delete user account. * Delete user account.
* @param id - User ObjectId
*/ */
exports.postDeleteAccount = function(req, res, next) { exports.postDeleteAccount = function(req, res, next) {
User.remove({ _id: req.user.id }, function(err) { User.remove({ _id: req.user.id }, function(err) {
if (err) return next(err); if (err) return next(err);
req.logout(); req.logout();
req.flash('info', { msg: 'Your account has been deleted.' });
res.redirect('/'); res.redirect('/');
}); });
}; };
/** /**
* GET /account/unlink/:provider * GET /account/unlink/:provider
* Unlink OAuth2 provider from the current user. * Unlink OAuth provider.
* @param provider * @param provider
* @param id - User ObjectId
*/ */
exports.getOauthUnlink = function(req, res, next) { exports.getOauthUnlink = function(req, res, next) {
@ -220,7 +219,6 @@ exports.getReset = function(req, res) {
if (req.isAuthenticated()) { if (req.isAuthenticated()) {
return res.redirect('/'); return res.redirect('/');
} }
User User
.findOne({ resetPasswordToken: req.params.token }) .findOne({ resetPasswordToken: req.params.token })
.where('resetPasswordExpires').gt(Date.now()) .where('resetPasswordExpires').gt(Date.now())
@ -238,6 +236,7 @@ exports.getReset = function(req, res) {
/** /**
* POST /reset/:token * POST /reset/:token
* Process the reset password request. * Process the reset password request.
* @param token
*/ */
exports.postReset = function(req, res, next) { exports.postReset = function(req, res, next) {