use express

This commit is contained in:
Anthony Metzidis 2017-01-26 17:07:45 -08:00
parent f277c1dd33
commit 5b82f1cb4d
2 changed files with 38 additions and 32 deletions

View File

@ -22,6 +22,7 @@
"connect-redirection": "0.0.1", "connect-redirection": "0.0.1",
"connect-route": "0.1.5", "connect-route": "0.1.5",
"dotenv": "^4.0.0", "dotenv": "^4.0.0",
"express": "^4.14.0",
"nodemon": "^1.11.0", "nodemon": "^1.11.0",
"pg": "4.1.1", "pg": "4.1.1",
"redis": "0.8.1", "redis": "0.8.1",

View File

@ -3,14 +3,15 @@ var url = require('url');
var fs = require('fs'); var fs = require('fs');
var winston = require('winston'); var winston = require('winston');
var connect = require('connect');
var route = require('connect-route'); var route = require('connect-route');
var connect_st = require('st'); var connect_st = require('st');
var connect_rate_limit = require('connect-ratelimit'); var connect_rate_limit = require('connect-ratelimit');
var passport = require('passport'); var passport = require('passport');
var redirect = require('connect-redirection'); var redirect = require('connect-redirection');
var query = require('connect-query'); var query = require('connect-query');
var express = require('express')
var connectEnsureLogin = require('connect-ensure-login');
var session = require('express-session')
require('dotenv').config(); require('dotenv').config();
var DocumentHandler = require('./lib/document_handler'); var DocumentHandler = require('./lib/document_handler');
@ -19,6 +20,7 @@ var DocumentHandler = require('./lib/document_handler');
var config = JSON.parse(fs.readFileSync('./config.js', 'utf8')); var config = JSON.parse(fs.readFileSync('./config.js', 'utf8'));
config.port = process.env.PORT || config.port || 7777; config.port = process.env.PORT || config.port || 7777;
config.host = process.env.HOST || config.host || 'localhost'; config.host = process.env.HOST || config.host || 'localhost';
config.secret = process.env.SECRET || '43rndsafdsakf;djsafkdsarf';
config.origin = 'http://' + config.host + ":" + config.port + "/"; config.origin = 'http://' + config.host + ":" + config.port + "/";
// Set up the loggergg // Set up the loggergg
@ -108,14 +110,16 @@ var documentHandler = new DocumentHandler({
keyGenerator: keyGenerator keyGenerator: keyGenerator
}); });
var app = connect(); var app = express();
app.use(redirect()); //app.use(redirect());
app.use(query()); //app.use(query());
// Rate limit all requests // Rate limit all requests
/*
if (config.rateLimits) { if (config.rateLimits) {
config.rateLimits.end = true; config.rateLimits.end = true;
app.use(connect_rate_limit(config.rateLimits)); app.use(connect_rate_limit(config.rateLimits));
} }
*/
var GoogleStrategy = require('passport-google-oauth20').Strategy; var GoogleStrategy = require('passport-google-oauth20').Strategy;
@ -139,39 +143,40 @@ passport.use(new GoogleStrategy({
} }
)); ));
app.use(session({ secret: config.secret, name: 'tt' }));
// first look at API calls // first look at API calls
app.use(passport.initialize()); app.use(passport.initialize());
app.use(passport.session()); app.use(passport.session());
//app.use(connectEnsureLogin.ensureLoggedIn());
var router = app;
app.use(route(function(router) { // get raw documents - support getting with extension
// get raw documents - support getting with extension //router.get('/', require('connect-ensure-login').ensureLoggedIn());
router.get('/', require('connect-ensure-login').ensureLoggedIn()); router.get('/login', passport.authenticate('google', { scope: ['profile'] }));
router.get('/login', passport.authenticate('google', { scope: ['profile'] }));
router.get( '/auth/google/callback', router.get( '/auth/google/callback',
passport.authenticate( 'google', { scope: ['profile'], passport.authenticate( 'google', { scope: ['profile'],
successRedirect: '/loggedin', successRedirect: '/',
failureRedirect: '/auth/failure' failureRedirect: '/auth/failure'
}));
router.get('/raw/:id', function(request, response, next) {
var skipExpire = !!config.documents[request.params.id];
var key = request.params.id.split('.')[0];
return documentHandler.handleRawGet(key, response, skipExpire);
});
// add documents
router.post('/documents', function(request, response, next) {
return documentHandler.handlePost(request, response);
});
// get documents
router.get('/documents/:id', function(request, response, next) {
var skipExpire = !!config.documents[request.params.id];
return documentHandler.handleGet(
request.params.id,
response,
skipExpire
);
});
})); }));
router.get('/raw/:id', function(request, response, next) {
var skipExpire = !!config.documents[request.params.id];
var key = request.params.id.split('.')[0];
return documentHandler.handleRawGet(key, response, skipExpire);
});
// add documents
router.post('/documents', function(request, response, next) {
return documentHandler.handlePost(request, response);
});
// get documents
router.get('/documents/:id', function(request, response, next) {
var skipExpire = !!config.documents[request.params.id];
return documentHandler.handleGet(
request.params.id,
response,
skipExpire
);
});
//app.use(require('connect-ensure-login').ensureLoggedIn()); //app.use(require('connect-ensure-login').ensureLoggedIn());
// Otherwise, try to match static files // Otherwise, try to match static files