Created
September 17, 2015 14:06
-
-
Save mhogeweg/43391f37791c2edb84b4 to your computer and use it in GitHub Desktop.
local koop app, including a few new providers (Geoportal Server and Junar)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var express = require('express'); | |
var cors = require('cors'); | |
var config = require('config'); | |
var junar = require('koop-junar'); | |
var koop = require('koop')(config); | |
var koopPg = require('koop-pgcache'); | |
var socrata = require('koop-socrata'); | |
var ckan = require('koop-ckan'); | |
var github = require('koop-github'); | |
var agol = require('koop-agol'); | |
var gist = require('koop-gist'); | |
var path = require('path'); | |
var gpt = require('koop-gpt'); | |
var app = express(); | |
var server; | |
// In production, in-memory cache storage is not recommended. | |
// We recommend using PostGIS as the cache engine. | |
// var pgCache = require('koop-pgcache'); | |
// koop.registerCache(pgCache); | |
// use HTTPS if it's included in the configuration | |
if (config.https_server && | |
config.https_server.private_key && | |
config.https_server.public_key) { | |
var https = require('https'); | |
var fs = require('fs'); | |
var options = { | |
key: fs.readFileSync(config.https_server.private_key), | |
cert: fs.readFileSync(config.https_server.public_key) | |
}; | |
} else { | |
// use http module by default | |
var http = require('http'); | |
} | |
// register koop providers | |
koop.register(koopPg); | |
koop.register(junar); | |
koop.register(socrata); | |
koop.register(ckan); | |
koop.register(github); | |
koop.register(gist); | |
koop.register(agol); | |
koop.register(gpt); | |
app.set('port', process.env.PORT || config.server.port || 3000); | |
app.set('views', path.join(__dirname, 'views')); | |
app.set('view engine', 'ejs'); | |
app.use(cors()); // add CORS support (recommended) | |
//app.use(koop); // add koop middleware | |
app.use('/koop', koop ); //This is changed to all koop to run at a different location | |
//app.get('/status', function (req, res) { | |
app.get('/koop/status', function(req, res){ //Have to listed for status at the right location | |
res.json(koop.status); | |
}); | |
app.get('/', function (req, res) { | |
res.render('index', { status: koop.status }); | |
}); | |
// serve the index | |
//app.get("/", function(req, res, next) { | |
app.get("/koop", function(req, res, next) { //If user requests the /koop root, need to give them the right data | |
res.send('Koop Sample App!'); | |
}); | |
if (config.https_server) { | |
server = https.createServer(options, app); | |
} else { | |
server = http.createServer(app); | |
} | |
// start the server | |
server.listen(app.get('port'), function () { | |
console.log('Express koop server listening on port ' + app.get('port')); | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment