From e8b1616e13bb8be5ac2153d45713a2899ed67327 Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Sat, 11 Jan 2014 22:53:31 -0500 Subject: [PATCH] Replaced clusters in favor of mongoose connection error handler. Plus, Css updates. --- app.js | 175 ++++++++++++++++------------------ public/css/styles.less | 1 + public/css/themes/flatly.less | 2 +- 3 files changed, 86 insertions(+), 92 deletions(-) diff --git a/app.js b/app.js index e5f9368197..edb64eb4c1 100755 --- a/app.js +++ b/app.js @@ -1,6 +1,7 @@ /** * Module dependencies. */ + var express = require('express'); var fs = require('fs'); var flash = require('connect-flash'); @@ -9,11 +10,11 @@ var path = require('path'); var mongoose = require('mongoose'); var MongoStore = require('connect-mongo')(express); var passport = require('passport'); -var cluster = require('cluster'); /** * Controllers. */ + var homeController = require('./controllers/home'); var userController = require('./controllers/user'); var apiController = require('./controllers/api'); @@ -22,102 +23,94 @@ var contactController = require('./controllers/contact'); /** * API keys and Passport configuration. */ + var secrets = require('./config/secrets'); var passportConf = require('./config/passport'); -if (cluster.isMaster) { - var numCPUs = require('os').cpus().length; +/** + * Connect to MongoDB. + */ +var opts = { server: { auto_reconnect: true } }; +mongoose.connect(secrets.db, opts); +mongoose.connection.on('error', function() { + console.log('MongoDB Connection Error'); +}); - for (var i = 0; i < numCPUs; i++) { - cluster.fork(); - } +var app = express(); - cluster.on('disconnect', function(worker, code, signal) { - console.error('worker ' + worker.process.pid + ' died'); - cluster.fork(); - }); -} else { +/** + * Express configuration. + */ - /** - * Connect to MongoDB. - */ - var opts = { server: { auto_reconnect: true } }; - mongoose.connect(secrets.db, opts); +app.set('port', process.env.PORT || 3000); +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'jade'); +app.use(express.favicon()); +app.use(express.logger('dev')); +app.use(express.cookieParser()); +app.use(express.json()); +app.use(express.urlencoded()); +app.use(express.methodOverride()); +app.use(express.session({ + secret: '0000', + store: new MongoStore({ db: secrets.db }) +})); +app.use(passport.initialize()); +app.use(passport.session()); +app.use(function(req, res, next) { + res.locals.user = req.user; + next(); +}); +app.use(flash()); +app.use(less({ src: __dirname + '/public', compress: true })); +app.use(app.router); +app.use(express.static(path.join(__dirname, 'public'))); +app.use(function(req, res) { + res.status(404); + res.render('404'); +}); +app.use(express.errorHandler()); - var app = express(); +/** + * Routes. + */ - /** - * Express configuration. - */ - app.set('port', process.env.PORT || 3000); - app.set('views', path.join(__dirname, 'views')); - app.set('view engine', 'jade'); - app.use(express.favicon()); - app.use(express.logger('dev')); - app.use(express.cookieParser()); - app.use(express.json()); - app.use(express.urlencoded()); - app.use(express.methodOverride()); - app.use(express.session({ - secret: '0000', - store: new MongoStore({ db: secrets.db }) - })); - app.use(passport.initialize()); - app.use(passport.session()); - app.use(function(req, res, next) { - res.locals.user = req.user; - next(); - }); - app.use(flash()); - app.use(less({ src: __dirname + '/public', compress: true })); - app.use(app.router); - app.use(express.static(path.join(__dirname, 'public'))); - app.use(function(req, res) { - res.status(404); - res.render('404'); - }); - app.use(express.errorHandler()); +app.get('/', homeController.index); +app.get('/login', userController.getLogin); +app.post('/login', userController.postLogin); +app.get('/logout', userController.logout); +app.get('/signup', userController.getSignup); +app.post('/signup', userController.postSignup); +app.get('/contact', contactController.getContact); +app.post('/contact', contactController.postContact); +app.get('/account', passportConf.isAuthenticated, userController.getAccount); +app.post('/account/profile', passportConf.isAuthenticated, userController.postUpdateProfile); +app.post('/account/password', passportConf.isAuthenticated, userController.postUpdatePassword); +app.post('/account/delete', passportConf.isAuthenticated, userController.postDeleteAccount); +app.get('/account/unlink/:provider', passportConf.isAuthenticated, userController.getOauthUnlink); +app.get('/api', apiController.getApi); +app.get('/api/foursquare', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getFoursquare); +app.get('/api/tumblr', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getTumblr); +app.get('/api/facebook', passportConf.isAuthenticated, apiController.getFacebook); +app.get('/api/scraping', apiController.getScraping); +app.get('/api/github', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getGithub); +app.get('/api/lastfm', apiController.getLastfm); +app.get('/api/nyt', apiController.getNewYorkTimes); +app.get('/api/twitter', passportConf.isAuthenticated, apiController.getTwitter); +app.get('/api/aviary', apiController.getAviary); +app.get('/auth/facebook', passport.authenticate('facebook', { scope: 'email' })); +app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/', failureRedirect: '/login' })); +app.get('/auth/github', passport.authenticate('github')); +app.get('/auth/github/callback', passport.authenticate('github', { successRedirect: '/', failureRedirect: '/login' })); +app.get('/auth/google', passport.authenticate('google', { scope: 'profile email' })); +app.get('/auth/google/callback', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' })); +app.get('/auth/twitter', passport.authenticate('twitter')); +app.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' })); +app.get('/auth/foursquare', passport.authorize('foursquare')); +app.get('/auth/foursquare/callback', passport.authorize('foursquare', { failureRedirect: '/api' }), function(req, res) { res.redirect('/api/foursquare'); }); +app.get('/auth/tumblr', passport.authorize('tumblr')); +app.get('/auth/tumblr/callback', passport.authorize('tumblr', { failureRedirect: '/api' }), function(req, res) { res.redirect('/api/tumblr'); }); - /** - * Routes. - */ - app.get('/', homeController.index); - app.get('/login', userController.getLogin); - app.post('/login', userController.postLogin); - app.get('/logout', userController.logout); - app.get('/signup', userController.getSignup); - app.post('/signup', userController.postSignup); - app.get('/contact', contactController.getContact); - app.post('/contact', contactController.postContact); - app.get('/account', passportConf.isAuthenticated, userController.getAccount); - app.post('/account/profile', passportConf.isAuthenticated, userController.postUpdateProfile); - app.post('/account/password', passportConf.isAuthenticated, userController.postUpdatePassword); - app.post('/account/delete', passportConf.isAuthenticated, userController.postDeleteAccount); - app.get('/account/unlink/:provider', passportConf.isAuthenticated, userController.getOauthUnlink); - app.get('/api', apiController.getApi); - app.get('/api/foursquare', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getFoursquare); - app.get('/api/tumblr', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getTumblr); - app.get('/api/facebook', passportConf.isAuthenticated, apiController.getFacebook); - app.get('/api/scraping', apiController.getScraping); - app.get('/api/github', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getGithub); - app.get('/api/lastfm', apiController.getLastfm); - app.get('/api/nyt', apiController.getNewYorkTimes); - app.get('/api/twitter', passportConf.isAuthenticated, apiController.getTwitter); - app.get('/api/aviary', apiController.getAviary); - app.get('/auth/facebook', passport.authenticate('facebook', { scope: 'email' })); - app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/', failureRedirect: '/login' })); - app.get('/auth/github', passport.authenticate('github')); - app.get('/auth/github/callback', passport.authenticate('github', { successRedirect: '/', failureRedirect: '/login' })); - app.get('/auth/google', passport.authenticate('google', { scope: 'profile email' })); - app.get('/auth/google/callback', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' })); - app.get('/auth/twitter', passport.authenticate('twitter')); - app.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' })); - app.get('/auth/foursquare', passport.authorize('foursquare')); - app.get('/auth/foursquare/callback', passport.authorize('foursquare', { failureRedirect: '/api' }), function(req, res) { res.redirect('/api/foursquare'); }); - app.get('/auth/tumblr', passport.authorize('tumblr')); - app.get('/auth/tumblr/callback', passport.authorize('tumblr', { failureRedirect: '/api' }), function(req, res) { res.redirect('/api/tumblr'); }); - - app.listen(app.get('port'), function() { - console.log('Express server listening on port ' + app.get('port')); - }); -} +app.listen(app.get('port'), function() { + console.log('Express server listening on port ' + app.get('port')); +}); diff --git a/public/css/styles.less b/public/css/styles.less index a17ac88c80..9ca4c7af11 100644 --- a/public/css/styles.less +++ b/public/css/styles.less @@ -1,4 +1,5 @@ @import "bootstrap/bootstrap"; +@import "themes/flatly"; @navbar-height: 40px; diff --git a/public/css/themes/flatly.less b/public/css/themes/flatly.less index 75320a9151..55416b8265 100644 --- a/public/css/themes/flatly.less +++ b/public/css/themes/flatly.less @@ -514,7 +514,7 @@ you can use the generic selector below, but it's slower: @navbar-default-link-disabled-bg: transparent; // Navbar brand label -@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-color: @navbar-default-link-hover-color; @navbar-default-brand-hover-color: @navbar-default-link-hover-color; @navbar-default-brand-hover-bg: transparent;