/* jshint node: true */ var ejs = require('ejs'); ejs.open = '[['; ejs.close = ']]'; var config = require('../config.json'), api = require('./lib/api'), auth = require('./lib/auth'), middleware = require('./lib/middleware'), views = require('./lib/views'); var http = require('http'), express = require('express'), MongoStore = require('connect-mongo')(express), passport = require('passport'), path = require('path'), mongoose = require('mongoose'); // var io = websocket.listen(config.socketPort) var app = express(); var DATABASE_URI = process.env.MONGOLAB_URI || ('mongodb://' + config.hostName + '/vvalls') mongoose.connect(DATABASE_URI); var SessionStore = new MongoStore({ mongoose_connection: mongoose.connection }) // Configure things app.set('port', config.port); app.set('views', path.join(__dirname, '../views')); app.set('view engine', 'ejs'); app.use(express.static(path.join(__dirname, '../public'))); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.cookieParser()); app.use(express.session({ key: 'vvalls.sid', secret: 'flibbertigibbet', cookie: { domain: '.' + config.hostName, maxAge: 43200000 }, store: SessionStore })); app.use(express.bodyParser()); app.use(express.query()); app.use(express.csrf()); app.use(express.methodOverride()); app.use(passport.initialize()); app.use(passport.session()); // app.use('/api', middleware.ensureAuthenticated, mers({conn: mongoose.connection}).rest()); app.use(app.router); app.get('env') === 'development' && app.use(express.errorHandler()); // Configure user authentication auth.init() // Essential middleware // app.all('*', middleware.enableCORS); app.all('*', middleware.ensureLocals); // Initialize views app.get('/', views.home); app.get('/login', views.modal); app.get('/signup', views.modal); app.post('/auth/signin', auth.loggedIn('local')); app.post('/auth/signup', auth.signup); app.get('/logout', auth.logout); app.get('/auth/twitter', auth.login('twitter')); app.get('/auth/twitter/callback', auth.loggedIn('twitter')); app.get('/auth/facebook', auth.login('facebook')); app.get('/auth/facebook/callback', auth.loggedIn('facebook')); app.get('/profile', views.profile) app.get('/profile/edit', views.profile) app.get('/api/profile', middleware.ensureAuthenticated, api.profile.show) app.put('/api/profile', middleware.ensureAuthenticated, api.profile.update) app.get('/project/new', views.modal); app.get(/^\/([-_a-zA-Z0-9]+)\/?$/, views.profile) /* auth.initSockets(io) */ http.createServer(app).listen(app.get('port'), function () { console.log('Express server listening on port ' + app.get('port')); });