You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.8 KiB

var express = require('express'),
bodyParser = require('body-parser'),
methodOverride = require('method-override'),
mongoose = require('mongoose'),
passport = require('passport'),
session = require('express-session'),
port = 3000 || process.env.PORT,
app = express();
mongoose.connect('mongodb://localhost/maps_auth_app');
// load passport config
require('./config/passport')(passport);
locationsController = require('./controllers/locationsController');
usersController = require('./controllers/usersController');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(session({ name: 'maps_auth_app', secret: 'conventional wisdom' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(methodOverride(function(req, res){
if (req.body && typeof req.body === 'object' && '_method' in req.body) {
var method = req.body._method;
delete req.body._method;
return method;
}
}));
// Example middleware for template control flow via 'login' variable.
// I'm using res.locals.login = req.isAuthenticated() only in the users index controller for now,
// for use only in users/index.ejs view. I've commented it here in case I ever wanted to make it
// available to other pages or make it app-wide in future.
// app.use('/', function(req, res, next) {
// res.locals.login = req.isAuthenticated();
// next();
// });
app.use('/locations', locationsController);
app.use('/users', usersController);
// root redirects to users index
app.get('/', function(req, res) {
res.redirect('/users');
});
app.listen(port, function() {
console.log('=======================');
console.log('Running on port ' + port);
console.log('=======================');
});