2013-11-13 17:32:22 +00:00
|
|
|
var express = require('express'),
|
2013-11-13 23:58:03 +00:00
|
|
|
http = require('http'),
|
|
|
|
path = require('path'),
|
2013-11-13 17:32:22 +00:00
|
|
|
fs = require('fs'),
|
2013-11-13 23:58:03 +00:00
|
|
|
mongoose = require('mongoose'),
|
|
|
|
passport = require('passport'),
|
2013-11-13 21:13:31 +00:00
|
|
|
config = require('./conf');
|
2013-11-13 20:49:58 +00:00
|
|
|
|
2013-11-13 23:58:03 +00:00
|
|
|
var User = require('./server/models/User');
|
2013-11-13 17:32:22 +00:00
|
|
|
|
|
|
|
var db = mongoose.connect(config.db);
|
|
|
|
var app = express();
|
|
|
|
|
2013-11-13 20:49:58 +00:00
|
|
|
app.set('port', process.env.PORT || 3000);
|
2013-11-13 23:58:03 +00:00
|
|
|
app.set('views', __dirname + '/client/views');
|
|
|
|
app.set('view engine', 'jade');
|
2013-11-13 17:49:37 +00:00
|
|
|
app.use(express.favicon());
|
2013-11-13 21:05:26 +00:00
|
|
|
app.use(express.logger('dev'));
|
2013-11-13 23:58:03 +00:00
|
|
|
app.use(express.cookieParser());
|
|
|
|
app.use(express.bodyParser());
|
2013-11-13 17:49:37 +00:00
|
|
|
app.use(express.methodOverride());
|
2013-11-13 23:58:03 +00:00
|
|
|
app.use(express.cookieSession({ secret: process.env.COOKIE_SECRET || 'secret' }));
|
|
|
|
app.use(passport.initialize());
|
|
|
|
app.use(passport.session());
|
2013-11-13 17:49:37 +00:00
|
|
|
app.use(app.router);
|
2013-11-13 21:05:26 +00:00
|
|
|
app.use(express.static(config.root + '/public'));
|
2013-11-13 17:49:37 +00:00
|
|
|
|
2013-11-13 23:58:03 +00:00
|
|
|
passport.use(User.localStrategy);
|
|
|
|
passport.use(User.twitterStrategy());
|
|
|
|
passport.use(User.facebookStrategy());
|
|
|
|
passport.use(User.googleStrategy());
|
|
|
|
passport.use(User.linkedInStrategy());
|
|
|
|
passport.serializeUser(User.serializeUser);
|
|
|
|
passport.deserializeUser(User.deserializeUser);
|
|
|
|
|
2013-11-13 17:32:22 +00:00
|
|
|
|
2013-11-13 22:16:06 +00:00
|
|
|
/**
|
|
|
|
* API Controllers
|
|
|
|
*/
|
|
|
|
var articles = require('./controllers/articles');
|
|
|
|
var users = require('./controllers/users');
|
|
|
|
|
|
|
|
|
2013-11-13 21:05:26 +00:00
|
|
|
/**
|
|
|
|
* API Routes
|
|
|
|
*/
|
|
|
|
app.post('/api/users', users.create);
|
|
|
|
app.get('/api/users/me', users.me);
|
|
|
|
app.get('/api/users/:userId', users.show);
|
|
|
|
app.get('/api/articles', articles.all);
|
|
|
|
app.post('/api/articles', requiresLogin, articles.create);
|
|
|
|
app.get('/api/articles/:articleId', articles.show);
|
|
|
|
app.put('/api/articles/:articleId', auth.requiresLogin, auth.article.hasAuthorization, articles.update);
|
|
|
|
app.del('/api/articles/:articleId', auth.requiresLogin, auth.article.hasAuthorization, articles.destroy);
|
|
|
|
|
|
|
|
|
|
|
|
app.listen(app.get('port'), function() {
|
|
|
|
console.log('Express server listening on port ' + app.get('port'));
|
|
|
|
});
|