osm-p2p-server
Version:
Peer-to-peer OpenStreetMap API v0.6 Server
43 lines (37 loc) • 985 B
JavaScript
var http = require('http')
var kosm = require('kappa-osm')
var kcore = require('kappa-core')
var memdb = require('memdb')
var ram = require('random-access-memory')
var osmrouter = require('../../')
var slowdb = require('./slowdb.js')
var DELAY = process.env.OSM_P2P_DB_DELAY
function testServer (cb) {
var osm = kosm({
index: DELAY ? slowdb({delay: DELAY}) : memdb(),
core: kcore(ram, { valueEncoding: 'json' }),
storage: function (name, cb) { cb(null, ram()) }
})
var router = osmrouter(osm)
var server = http.createServer(function (req, res) {
if (router.handle(req, res)) {
} else {
res.statusCode = 404
res.end('not found\n')
}
})
server.cleanup = function (cb) {
server.close()
cb()
}
server.listen(0, function () {
var port = server.address().port
var base = 'http://localhost:' + port + '/api/0.6/'
cb({
server: server,
osm: osm,
base: base
})
})
}
module.exports = testServer