freeCodeCamp/server.js

59 lines
1.8 KiB
JavaScript
Raw Normal View History

2013-11-13 17:32:22 +00:00
var express = require('express'),
http = require('http'),
path = require('path'),
2013-11-13 17:32:22 +00:00
fs = require('fs'),
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
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);
app.set('views', __dirname + '/client/views');
app.set('view engine', 'jade');
app.use(express.favicon());
2013-11-13 21:05:26 +00:00
app.use(express.logger('dev'));
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieSession({ secret: process.env.COOKIE_SECRET || 'secret' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
2013-11-13 21:05:26 +00:00
app.use(express.static(config.root + '/public'));
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
/**
* 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'));
});