Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var cookieParser = require('cookie-parser');
- var path = require('path');
- var logger = require('morgan');
- var compression = require('compression');
- var methodOverride = require('method-override');
- var session = require('express-session');
- var flash = require('connect-flash');
- var bodyParser = require('body-parser');
- var expressValidator = require('express-validator');
- var dotenv = require('dotenv');
- var exphbs = require('express-handlebars');
- var mongoose = require('mongoose');
- var passport = require('passport');
- var RedisStore = require('connect-redis')(session);
- // Load environment variables from .env file
- // Controllers
- var HomeController = require('./controllers/home');
- var userController = require('./controllers/user');
- var contactController = require('./controllers/contact');
- // Passport OAuth strategies
- require('./config/passport');
- var app = express();
- dotenv.load();
- mongoose.connect(process.env.MONGODB_URI || process.env.MONGODB);
- mongoose.connection.on('error', function() {
- console.log('MongoDB Connection Error. Please make sure that MongoDB is running.');
- process.exit(1);
- });
- var hbs = exphbs.create({
- defaultLayout: 'main',
- helpers: {
- ifeq: function(a, b, options) {
- if (a === b) {
- return options.fn(this);
- }
- return options.inverse(this);
- },
- toJSON : function(object) {
- return JSON.stringify(object);
- }
- }
- });
- app.engine('handlebars', hbs.engine);
- app.set('view engine', 'handlebars');
- app.set('port', process.env.PORT || 3000);
- app.use(compression());
- app.use(logger('dev'));
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({ extended: false }));
- app.use(expressValidator());
- app.use(methodOverride('_method'));
- app.use(flash());
- app.use(express.static(path.join(__dirname, 'public')));
- app.use(cookieParser()); // required before session.
- if (process.env.REDISTOGO_URL) {
- var redisUrl = require('url').parse(process.env.REDISTOGO_URL),
- redisAuth = redisUrl.auth.split(':');
- app.set('redisHost', redisUrl.hostname);
- app.set('redisPort', redisUrl.port);
- app.set('redisDb', redisAuth[0]);
- app.set('redisPass', redisAuth[1]);
- } else {
- var redis = require("redis").createClient();
- }
- if ('production' == app.get('env')) {
- app.use(session({
- secret: process.env.SESSION_SECRET,
- cookie : {secure : true},
- resave: true, saveUninitialized: true,
- store: new RedisStore({
- host: app.set('redisHost'),
- port: app.set('redisPort'),
- db: app.set('redisDb'),
- pass: app.set('redisPass')
- })
- }));
- } else if ('development' == app.get('env')) {
- app.use(session({ secret: process.env.SESSION_SECRET, resave: true, saveUninitialized: true }));
- };
- app.use(passport.initialize());
- app.use(passport.session());
- app.use(function(req, res, next) {
- res.locals.user = req.user;
- next();
- });
- app.get('/', HomeController.index);
- app.get('/dashboard', HomeController.dashboard);
- app.get('/contact', contactController.contactGet);
- app.post('/contact', contactController.contactPost);
- app.get('/account', userController.ensureAuthenticated, userController.accountGet);
- app.put('/account', userController.ensureAuthenticated, userController.accountPut);
- app.delete('/account', userController.ensureAuthenticated, userController.accountDelete);
- app.get('/signup', userController.signupGet);
- app.post('/signup', userController.signupPost);
- app.get('/login', userController.loginGet);
- app.post('/login', userController.loginPost);
- app.get('/forgot', userController.forgotGet);
- app.post('/forgot', userController.forgotPost);
- app.get('/reset/:token', userController.resetGet);
- app.post('/reset/:token', userController.resetPost);
- app.get('/logout', userController.logout);
- app.get('/unlink/:provider', userController.ensureAuthenticated, userController.unlink);
- // Production error handler
- if (app.get('env') === 'production') {
- app.use(function(err, req, res, next) {
- console.error(err.stack);
- res.sendStatus(err.status || 500);
- });
- }
- app.listen(app.get('port'), function() {
- console.log('Express server listening on port ' + app.get('port'));
- });
- module.exports = app;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement