var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var fileUpload = require('express-fileupload'); var exphbs = require('express-handlebars'); var expressValidator = require('express-validator'); var flash = require('connect-flash'); var session = require('express-session'); var passport = require('passport'); var localStrategy = require('passport-local').Strategy; var mongo = require('mongodb'); var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/loginapp'); var db = mongoose.connection; var routes = require('./routes/index'); var users = require('./routes/users'); // Init App var app = express(); // View Engine app.set('views', path.join(__dirname, 'views')); app.engine('handlebars', exphbs({defaultLayout:'layout'})); app.set('view engine', 'handlebars'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false})); app.use(cookieParser()); app.use(fileUpload()); // Set Static Folder app.use(express.static(path.join(__dirname, 'public'))); // Express Session app.use(session({ secret: 'secret', saveUninitialized: true, resave: true })); // Passport init app.use(passport.initialize()); app.use(passport.session()); // Express Validator app.use(expressValidator({ errorFormatter: function(param, msg, value) { var namesspace = param.split('.') , root = namesspace.shift() , formParam = root; while(namesspace.length) { formParam += '[' + namesspace.shift() + ']'; } return { param: formParam, msg: msg, value : value }; } })); // Connect Flash app.use(flash()); // Global Vars app.use(function(req, res, next) { res.locals.success_msg = req.flash('success_msg'); res.locals.error_msg = req.flash('error_msg'); res.locals.error = req.flash('error'); res.locals.user = req.user || null; next(); }) app.use('', routes); app.use('/users', users); app.set('port', (process.env.PORT || 8080)); app.listen(app.get('port'), function () { console.log('Server started on port ' + app.get('port')); });