aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDennis Eriksen <dennis.se@gmail.com>2013-04-25 01:21:07 +0200
committerDennis Eriksen <dennis.se@gmail.com>2013-04-25 01:21:07 +0200
commitedd995fd5f92bba8221c7b9384ad0cb7c59794e3 (patch)
tree0cbf1a40d56256736bba7b09ee29f5fadac482da
parentMerge pull request #1 from dennisse/master (diff)
downloadDivid-edd995fd5f92bba8221c7b9384ad0cb7c59794e3.tar.gz
moved express config to own file. created configfile.
-rw-r--r--app.js39
-rw-r--r--config/config.js15
-rw-r--r--config/express.js60
-rw-r--r--package.json2
4 files changed, 89 insertions, 27 deletions
diff --git a/app.js b/app.js
index 9fcfc31..c292af9 100644
--- a/app.js
+++ b/app.js
@@ -5,45 +5,32 @@
var express = require('express')
, path = require('path')
- , bcrypt = require('bcrypt')
, passport = require('passport');
+
var app = express(); // initiates express
/**
* App configuration
*/
+var port = process.env.PORT || 3000
+ , env = process.env.NODE_ENV || 'development'
+ , config = require('./config/config')[env];
-app.configure(function(){
- // this controls the port the application will be running on.
- // by adding 'process.enc.PORT' we enable the app to run on automated systems like heroku
- app.set('port', process.env.PORT || 3000);
-
- app.set('views', __dirname + '/views'); // sets views to the right directory
- app.set('view engine', 'ejs'); // initiates viewengine. We use EJS, or embedded js - http://embeddedjs.com/
- app.use(express.favicon(__dirname + '/public/faviconb.ico')); // sets favicon
- app.use(express.logger('dev'));
- app.use(express.bodyParser());
- app.use(express.cookieParser());
- app.use(express.session({ secret: 'lsdrghoi4hgqio42nqf2uqi32f3bilu23fl23b' }));
- app.use(express.methodOverride());
- app.use(require('less-middleware')({ src: __dirname + '/public' }));
- app.use(express.static(path.join(__dirname, 'public')));
- app.use(passport.initialize());
- app.use(passport.session());
-});
-app.configure('development', function(){
- app.use(express.errorHandler());
-});
+/**
+ * Express
+ */
+var app = express();
+// express settings
+require('./config/express')(app, config, passport);
/**
* Routes
*/
-
-require('./router')(app);
+require('./router')(app, config);
@@ -51,8 +38,8 @@ require('./router')(app);
* Server initiation
*/
-app.listen(app.get('port'), function() {
- console.log("Express server listening on port " + app.get('port'));
+app.listen(port, function() {
+ console.log("Express server listening on port " + port);
});
diff --git a/config/config.js b/config/config.js
new file mode 100644
index 0000000..8312ddc
--- /dev/null
+++ b/config/config.js
@@ -0,0 +1,15 @@
+var path = require('path')
+ , rootPath = path.normalize(__dirname + '/..');
+
+
+module.exports = {
+ development: {
+ db: 'mongodb://localhost/test',
+ root: rootPath,
+ app: {
+ name: 'Divid'
+ }
+ }
+}
+
+
diff --git a/config/express.js b/config/express.js
new file mode 100644
index 0000000..4afd827
--- /dev/null
+++ b/config/express.js
@@ -0,0 +1,60 @@
+
+/**
+ * Module dependencies
+ */
+
+var express = require('express');
+
+
+/**
+ * Module
+ */
+
+module.exports = function (app, config, passport) {
+
+ //sets view engine and path
+ app.set('views', config.root + '/views');
+ app.set('view engine', 'ejs');
+
+ app.use(express.static(config.root + '/public'));
+
+ // don't use logger for test enc
+ if (process.env.NODE_ENV !== 'test') app.use(express.logger('dev'));
+
+
+ app.configure(function () {
+
+ app.use(express.cookieParser()); //must be above sessions
+
+ app.use(express.bodyParser()); //must be above methodOverride
+
+ app.use(express.methodOverride());
+
+ app.use(express.session({ secret: 'lsdrghoi4hgqio42nqf2uqi32f3bilu23fl23b' }));
+
+ // use passport session
+ app.use(passport.initialize());
+ app.use(passport.session());
+
+ app.use(express.favicon(__dirname + '/public/faviconb.ico'));
+
+ // use LESS for CSS
+ app.use(require('less-middleware')({ src: config.root + '/public' }));
+
+ app.use(app.router);
+
+ app.use(function(err, req, res, next) {
+ if (~err.message.indexOf('not fount')) return next(); // treat like 404
+
+ console.error(err.stack);
+
+ res.status(500).render('500', { error: err.stack }); // render page
+ });
+
+ app.use(function(req, res, next) {
+ res.status(404).render('404', { url: req.originalUrl, error: 'Not found' }); // render page
+ });
+ });
+}
+
+
diff --git a/package.json b/package.json
index 48ae466..08595cb 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
, "bcrypt": "latest"
, "nodemon": "latest"
}
- , "decDependencies": {
+ , "devDependencies": {
"mocha": "latest"
}
}