combined express config and server file
This commit is contained in:
@ -1,93 +0,0 @@
|
|||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
*/
|
|
||||||
var express = require('express'),
|
|
||||||
mongoStore = require('connect-mongo')(express),
|
|
||||||
flash = require('connect-flash'),
|
|
||||||
helpers = require('view-helpers'),
|
|
||||||
config = require('./config');
|
|
||||||
|
|
||||||
module.exports = function(app, passport, db) {
|
|
||||||
app.set('showStackError', true);
|
|
||||||
|
|
||||||
//Prettify HTML
|
|
||||||
app.locals.pretty = true;
|
|
||||||
|
|
||||||
//Should be placed before express.static
|
|
||||||
app.use(express.compress({
|
|
||||||
filter: function(req, res) {
|
|
||||||
return (/json|text|javascript|css/).test(res.getHeader('Content-Type'));
|
|
||||||
},
|
|
||||||
level: 9
|
|
||||||
}));
|
|
||||||
|
|
||||||
//Setting the fav icon and static folder
|
|
||||||
app.use(express.favicon());
|
|
||||||
app.use(express.static(config.root + '/public'));
|
|
||||||
|
|
||||||
//Don't use logger for test env
|
|
||||||
if (process.env.NODE_ENV !== 'test') {
|
|
||||||
app.use(express.logger('dev'));
|
|
||||||
}
|
|
||||||
|
|
||||||
//Set views path, template engine and default layout
|
|
||||||
app.set('views', config.root + '/app/views');
|
|
||||||
app.set('view engine', 'jade');
|
|
||||||
|
|
||||||
//Enable jsonp
|
|
||||||
app.enable("jsonp callback");
|
|
||||||
|
|
||||||
app.configure(function() {
|
|
||||||
//cookieParser should be above session
|
|
||||||
app.use(express.cookieParser());
|
|
||||||
|
|
||||||
//bodyParser should be above methodOverride
|
|
||||||
app.use(express.bodyParser());
|
|
||||||
app.use(express.methodOverride());
|
|
||||||
|
|
||||||
//express/mongo session storage
|
|
||||||
app.use(express.session({
|
|
||||||
secret: 'MEAN',
|
|
||||||
store: new mongoStore({
|
|
||||||
db: db.connection.db,
|
|
||||||
collection: 'sessions'
|
|
||||||
})
|
|
||||||
}));
|
|
||||||
|
|
||||||
//connect flash for flash messages
|
|
||||||
app.use(flash());
|
|
||||||
|
|
||||||
//dynamic helpers
|
|
||||||
app.use(helpers(config.app.name));
|
|
||||||
|
|
||||||
//use passport session
|
|
||||||
app.use(passport.initialize());
|
|
||||||
app.use(passport.session());
|
|
||||||
|
|
||||||
//routes should be at the last
|
|
||||||
app.use(app.router);
|
|
||||||
|
|
||||||
//Assume "not found" in the error msgs is a 404. this is somewhat silly, but valid, you can do whatever you like, set properties, use instanceof etc.
|
|
||||||
app.use(function(err, req, res, next) {
|
|
||||||
//Treat as 404
|
|
||||||
if (~err.message.indexOf('not found')) return next();
|
|
||||||
|
|
||||||
//Log it
|
|
||||||
console.error(err.stack);
|
|
||||||
|
|
||||||
//Error page
|
|
||||||
res.status(500).render('500', {
|
|
||||||
error: err.stack
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
//Assume 404 since no middleware responded
|
|
||||||
app.use(function(req, res, next) {
|
|
||||||
res.status(404).render('404', {
|
|
||||||
url: req.originalUrl,
|
|
||||||
error: 'Not found'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
14
gruntfile.js
14
gruntfile.js
@ -1,4 +1,4 @@
|
|||||||
module.exports = function(grunt) {
|
exports.exports = function(grunt) {
|
||||||
// Project Configuration
|
// Project Configuration
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
@ -6,21 +6,21 @@ module.exports = function(grunt) {
|
|||||||
jade: {
|
jade: {
|
||||||
files: ['app/views/**'],
|
files: ['app/views/**'],
|
||||||
options: {
|
options: {
|
||||||
livereload: true,
|
livereload: true
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
js: {
|
js: {
|
||||||
files: ['public/js/**', 'app/**/*.js'],
|
files: ['public/js/**', 'app/**/*.js'],
|
||||||
tasks: ['jshint'],
|
tasks: ['jshint'],
|
||||||
options: {
|
options: {
|
||||||
livereload: true,
|
livereload: true
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
html: {
|
html: {
|
||||||
files: ['public/views/**'],
|
files: ['public/views/**'],
|
||||||
options: {
|
options: {
|
||||||
livereload: true,
|
livereload: true
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
css: {
|
css: {
|
||||||
files: ['public/css/**'],
|
files: ['public/css/**'],
|
||||||
|
61
server.js
61
server.js
@ -1,8 +1,9 @@
|
|||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
*/
|
|
||||||
var express = require('express'),
|
var express = require('express'),
|
||||||
|
mongoStore = require('connect-mongo')(express),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
|
flash = require('connect-flash'),
|
||||||
|
helpers = require('view-helpers'),
|
||||||
|
config = require('./config'),
|
||||||
passport = require('passport'),
|
passport = require('passport'),
|
||||||
logger = require('mean-logger');
|
logger = require('mean-logger');
|
||||||
|
|
||||||
@ -43,8 +44,58 @@ require('./config/passport')(passport);
|
|||||||
|
|
||||||
var app = express();
|
var app = express();
|
||||||
|
|
||||||
//express settings
|
/**
|
||||||
require('./config/express')(app, passport, db);
|
* Express Settings
|
||||||
|
*/
|
||||||
|
app.set('showStackError', true);
|
||||||
|
app.locals.pretty = true;
|
||||||
|
app.use(express.compress({
|
||||||
|
filter: function(req, res) {
|
||||||
|
return (/json|text|javascript|css/).test(res.getHeader('Content-Type'));
|
||||||
|
},
|
||||||
|
level: 9
|
||||||
|
}));
|
||||||
|
app.use(express.favicon());
|
||||||
|
app.use(express.static(config.root + '/public'));
|
||||||
|
app.set('views', config.root + '/app/views');
|
||||||
|
app.set('view engine', 'jade');
|
||||||
|
app.enable("jsonp callback");
|
||||||
|
app.use(express.cookieParser());
|
||||||
|
app.use(express.bodyParser());
|
||||||
|
app.use(express.methodOverride());
|
||||||
|
app.use(express.session({
|
||||||
|
secret: '1337',
|
||||||
|
store: new mongoStore({
|
||||||
|
db: db.connection.db,
|
||||||
|
collection: 'sessions'
|
||||||
|
})
|
||||||
|
}));
|
||||||
|
app.use(flash());
|
||||||
|
app.use(helpers(config.app.name));
|
||||||
|
app.use(passport.initialize());
|
||||||
|
app.use(passport.session());
|
||||||
|
app.use(app.router);
|
||||||
|
|
||||||
|
app.use(function(err, req, res, next) {
|
||||||
|
//Treat as 404
|
||||||
|
if (~err.message.indexOf('not found')) return next();
|
||||||
|
|
||||||
|
//Log it
|
||||||
|
console.error(err.stack);
|
||||||
|
|
||||||
|
//Error page
|
||||||
|
res.status(500).render('500', {
|
||||||
|
error: err.stack
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use(function(req, res, next) {
|
||||||
|
res.status(404).render('404', {
|
||||||
|
url: req.originalUrl,
|
||||||
|
error: 'Not found'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
//Bootstrap routes
|
//Bootstrap routes
|
||||||
require('./config/routes')(app, passport, auth);
|
require('./config/routes')(app, passport, auth);
|
||||||
|
Reference in New Issue
Block a user