From 1c7ae6ecb59505f44b7809648b9a50d1de11bcda Mon Sep 17 00:00:00 2001 From: Amos Haviv Date: Fri, 2 May 2014 18:28:24 +0300 Subject: [PATCH] Configuring Extensions --- app/controllers/core.server.controller.js | 2 +- app/routes/articles.server.routes.js | 4 +-- app/routes/core.server.routes.js | 2 +- app/routes/users.server.routes.js | 2 +- app/views/404.server.view.html | 2 +- config/config.js | 15 +++------ config/express.js | 8 ++--- config/init.js | 40 +++++++++++++++++++++++ config/strategies/facebook.js | 5 ++- config/strategies/google.js | 5 ++- config/strategies/linkedin.js | 5 ++- config/strategies/local.js | 3 ++ config/strategies/twitter.js | 5 ++- server.js | 4 +-- 14 files changed, 76 insertions(+), 26 deletions(-) create mode 100644 config/init.js diff --git a/app/controllers/core.server.controller.js b/app/controllers/core.server.controller.js index 0412dbeb9b..db02fb5ec7 100644 --- a/app/controllers/core.server.controller.js +++ b/app/controllers/core.server.controller.js @@ -4,7 +4,7 @@ * Module dependencies. */ exports.index = function(req, res) { - res.render('index.server.view.html', { + res.render('index', { user: req.user || null }); }; \ No newline at end of file diff --git a/app/routes/articles.server.routes.js b/app/routes/articles.server.routes.js index 054b812720..e393414177 100644 --- a/app/routes/articles.server.routes.js +++ b/app/routes/articles.server.routes.js @@ -3,8 +3,8 @@ /** * Module dependencies. */ -var users = require('../../app/controllers/users.server.controller'), - articles = require('../../app/controllers/articles.server.controller'); +var users = require('../../app/controllers/users'), + articles = require('../../app/controllers/articles'); module.exports = function(app) { // Article Routes diff --git a/app/routes/core.server.routes.js b/app/routes/core.server.routes.js index 1db9d40074..4cd9616aa9 100644 --- a/app/routes/core.server.routes.js +++ b/app/routes/core.server.routes.js @@ -2,6 +2,6 @@ module.exports = function(app) { // Root routing - var core = require('../../app/controllers/core.server.controller'); + var core = require('../../app/controllers/core'); app.route('/').get(core.index); }; \ No newline at end of file diff --git a/app/routes/users.server.routes.js b/app/routes/users.server.routes.js index a87befbdbd..f925eb0618 100644 --- a/app/routes/users.server.routes.js +++ b/app/routes/users.server.routes.js @@ -7,7 +7,7 @@ var passport = require('passport'); module.exports = function(app) { // User Routes - var users = require('../../app/controllers/users.server.controller'); + var users = require('../../app/controllers/users'); app.route('/users/me').get(users.me); app.route('/users').put(users.update); app.route('/users/password').post(users.changePassword); diff --git a/app/views/404.server.view.html b/app/views/404.server.view.html index 0074fa456d..c1d84521b5 100644 --- a/app/views/404.server.view.html +++ b/app/views/404.server.view.html @@ -1,4 +1,4 @@ -{% extends 'layout.server.view.html' %} +{% extends 'layout' %} {% block content %}

Page Not Found

diff --git a/config/config.js b/config/config.js index d390487159..e694bf4715 100644 --- a/config/config.js +++ b/config/config.js @@ -1,26 +1,21 @@ 'use strict'; +/** + * Module dependencies. + */ var _ = require('lodash'), glob = require('glob'); /** - * Before we begin, lets set the envrionment variable - * We'll Look for a valid NODE_ENV variable and if one cannot be found load the development NODE_ENV + * Load app configurations */ -glob('./config/env/' + process.env.NODE_ENV + '.js', { - sync: true -}, function(err, environmentFiles) { - process.env.NODE_ENV = environmentFiles.length ? process.env.NODE_ENV : 'development'; -}); - -// Load app configurations module.exports = _.extend( require('./env/all'), require('./env/' + process.env.NODE_ENV) || {} ); /** - * Get the modules JavaScript files + * Get files by glob patterns */ module.exports.getGlobbedFiles = function(globPatterns, removeRoot) { // For context switching diff --git a/config/express.js b/config/express.js index f35e02f2e0..89fa4337d6 100755 --- a/config/express.js +++ b/config/express.js @@ -55,10 +55,10 @@ module.exports = function(db) { app.set('showStackError', true); // Set swig as the template engine - app.engine('html', consolidate[config.templateEngine]); + app.engine('server.view.html', consolidate[config.templateEngine]); // Set views path and view engine - app.set('view engine', 'html'); + app.set('view engine', 'server.view.html'); app.set('views', './app/views'); // Environment dependent middleware @@ -123,14 +123,14 @@ module.exports = function(db) { console.error(err.stack); // Error page - res.status(500).render('500.server.view.html', { + res.status(500).render('500', { error: err.stack }); }); // Assume 404 since no middleware responded app.use(function(req, res) { - res.status(404).render('404.server.view.html', { + res.status(404).render('404', { url: req.originalUrl, error: 'Not Found' }); diff --git a/config/init.js b/config/init.js new file mode 100644 index 0000000000..9a2ae984e9 --- /dev/null +++ b/config/init.js @@ -0,0 +1,40 @@ +'use strict'; + +/** + * Module dependencies. + */ +var glob = require('glob'); + +/** + * Module init function. + */ +module.exports = function() { + /** + * Before we begin, lets set the envrionment variable + * We'll Look for a valid NODE_ENV variable and if one cannot be found load the development NODE_ENV + */ + glob('./config/env/' + process.env.NODE_ENV + '.js', { + sync: true + }, function(err, environmentFiles) { + console.log(); + if (!environmentFiles.length) { + if(process.env.NODE_ENV) { + console.log('\x1b[31m', 'No configuration file found for "' + process.env.NODE_ENV + '" envrionment using develpoment instead'); + } else { + console.log('\x1b[31m', 'NODE_ENV is not defined! Using default develpoment envrionment'); + } + + process.env.NODE_ENV = 'development'; + } else { + console.log('\x1b[7m', 'Application loaded using the "' + process.env.NODE_ENV + '" envrionment configuration'); + } + console.log('\x1b[0m'); + }); + + /** + * Add our server node extensions + */ + require.extensions['.server.controller.js'] = require.extensions['.js']; + require.extensions['.server.model.js'] = require.extensions['.js']; + require.extensions['.server.routes.js'] = require.extensions['.js']; +}; \ No newline at end of file diff --git a/config/strategies/facebook.js b/config/strategies/facebook.js index f435726514..51d5f1725e 100644 --- a/config/strategies/facebook.js +++ b/config/strategies/facebook.js @@ -1,10 +1,13 @@ 'use strict'; +/** + * Module dependencies. + */ var passport = require('passport'), url = require('url'), FacebookStrategy = require('passport-facebook').Strategy, config = require('../config'), - users = require('../../app/controllers/users.server.controller'); + users = require('../../app/controllers/users'); module.exports = function() { // Use facebook strategy diff --git a/config/strategies/google.js b/config/strategies/google.js index af4aacedef..dceb96c708 100644 --- a/config/strategies/google.js +++ b/config/strategies/google.js @@ -1,10 +1,13 @@ 'use strict'; +/** + * Module dependencies. + */ var passport = require('passport'), url = require('url'), GoogleStrategy = require('passport-google-oauth').OAuth2Strategy, config = require('../config'), - users = require('../../app/controllers/users.server.controller'); + users = require('../../app/controllers/users'); module.exports = function() { // Use google strategy diff --git a/config/strategies/linkedin.js b/config/strategies/linkedin.js index 2aa176b3b4..e29d5d433d 100644 --- a/config/strategies/linkedin.js +++ b/config/strategies/linkedin.js @@ -1,10 +1,13 @@ 'use strict'; +/** + * Module dependencies. + */ var passport = require('passport'), url = require('url'), LinkedInStrategy = require('passport-linkedin').Strategy, config = require('../config'), - users = require('../../app/controllers/users.server.controller'); + users = require('../../app/controllers/users'); module.exports = function() { // Use linkedin strategy diff --git a/config/strategies/local.js b/config/strategies/local.js index c22c5f7fa5..97f8d43098 100644 --- a/config/strategies/local.js +++ b/config/strategies/local.js @@ -1,5 +1,8 @@ 'use strict'; +/** + * Module dependencies. + */ var passport = require('passport'), LocalStrategy = require('passport-local').Strategy, User = require('mongoose').model('User'); diff --git a/config/strategies/twitter.js b/config/strategies/twitter.js index b3df02d417..fa62fc9bf1 100644 --- a/config/strategies/twitter.js +++ b/config/strategies/twitter.js @@ -1,10 +1,13 @@ 'use strict'; +/** + * Module dependencies. + */ var passport = require('passport'), url = require('url'), TwitterStrategy = require('passport-twitter').Strategy, config = require('../config'), - users = require('../../app/controllers/users.server.controller'); + users = require('../../app/controllers/users'); module.exports = function() { // Use twitter strategy diff --git a/server.js b/server.js index 7392a1eeaf..98da068228 100755 --- a/server.js +++ b/server.js @@ -2,7 +2,8 @@ /** * Module dependencies. */ -var config = require('./config/config'), +var init = require('./config/init')(), + config = require('./config/config'), mongoose = require('mongoose'); /** @@ -26,5 +27,4 @@ app.listen(config.port); exports = module.exports = app; // Logging initialization -console.log('Using the "' + process.env.NODE_ENV + '" envrionment file'); console.log('MEAN.JS application started on port ' + config.port);