Skip to content

Instantly share code, notes, and snippets.

@mikeuduc
Created May 14, 2015 01:10
Show Gist options
  • Save mikeuduc/a5dba089e6e8fc5bf126 to your computer and use it in GitHub Desktop.
Save mikeuduc/a5dba089e6e8fc5bf126 to your computer and use it in GitHub Desktop.
// server.js
// set up ======================================================================
// get all the tools we need
var express = require('express');
var app = express();
var port = process.env.PORT || 5858;
var mongoose = require('mongoose');
var passport = require('passport');
var flash = require('connect-flash');
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var configDB = require('./config/database.js');
// configuration ===============================================================
mongoose.connect(configDB.mongodb.url); // connect to our database
require('./config/passport')(passport); // pass passport for configuration
app.configure(function() {
// set up our express application
app.use(express.logger('dev')); // log every request to the console
app.use(express.cookieParser());
app.use(express.bodyParser()); // get information from html forms
app.set('view engine', 'ejs'); // set up ejs for templating
app.use('/assets', express.static('assets'));
app.use('/Scripts', express.static('Scripts'));
app.set('view options', { pretty: true }); // set up ejs for templating
// required for passport
// app.use(session({ secret: 'quodisys' })); // session secret
/* app.use(session({
store: new RedisStore({ host: configDB.redis.host, port: configDB.redis.port, pass: configDB.redis.pass }) , // session store redis
secret: 'quodisys', //session secret
saveUninitialized: false, // don't create session until something stored,
resave: false // don't save session if unmodified
}));*/
var redisStoreOptions = {
host: 'angelfish.redistogo.com',
port: 10947 ,
pass :'fd1e9162ef80a976ecae1c8ca8f191b8'
}
app.use(session({
store: new RedisStore(redisStoreOptions) , // session store redis
secret: 'quodisys', //session secret
saveUninitialized: false, // don't create session until something stored,
resave: false // don't save session if unmodified
}));
app.use(function (req, res, next) {
if (!req.session) {
return next(new Error('oh no')) // handle error
}
next() // otherwise continue
})
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
next();
});
//app.use(express.favicon("public/images/favicon.ico"));
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash());
});
// routes ======================================================================
require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport
// launch ======================================================================
app.listen(port);
console.log('Testimonial In Development On ' + port);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment