Add backing services to http api

This commit is contained in:
Yemel Jardi 2015-02-27 12:36:28 -03:00
parent ce415a37eb
commit 75bc316ea4
5 changed files with 55 additions and 41 deletions

View File

@ -7,40 +7,34 @@ var bodyParser = require('body-parser');
var config = require('./config'); var config = require('./config');
var routes = require('./routes'); var routes = require('./routes');
function init(backend) {
function API(backend, opts) { var app = express();
this.backend = backend;
this.opts = opts;
this._initApp();
}
API.prototype._initApp = function() {
this.app = express();
// parse POST data // parse POST data
this.app.use(cors()); app.use(cors());
this.app.use(bodyParser.json()); app.use(bodyParser.json());
this.app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.urlencoded({ extended: false }));
// install routes // install routes
this.app.use('/', routes); app.use('/', routes(backend));
// catch 404 and forward to error handler // catch 404 and forward to error handler
this.app.use(function(req, res, next) { app.use(function(req, res, next) {
var err = new Error('Not Found'); var err = new Error('Not Found');
err.status = 404; err.status = 404;
next(err); next(err);
}); });
// production error handler // production error handler
this.app.use(function(err, req, res, next) { app.use(function(err, req, res, next) {
res.status(err.status || 500); res.status(err.status || 500);
res.send({ res.send({
message: err.message, message: err.message,
error: {} error: {}
}); });
}); });
return app;
} }
module.exports = API; module.exports = init;

View File

@ -6,20 +6,29 @@
var API = require('../app'); var API = require('../app');
var http = require('http'); var http = require('http');
var api = new API();
/**
* Init api with backing services
*/
var Node = {
status: 'live',
nodes: 123
}
var app = new API(Node);
/** /**
* Get port from environment and store in Express. * Get port from environment and store in Express.
*/ */
var port = normalizePort(process.env.PORT || '8000'); var port = normalizePort(process.env.PORT || '8000');
api.app.set('port', port); app.set('port', port);
/** /**
* Create HTTP server. * Create HTTP server.
*/ */
var server = http.createServer(api.app); var server = http.createServer(app);
/** /**
* Listen on provided port, on all network interfaces. * Listen on provided port, on all network interfaces.

View File

@ -3,15 +3,18 @@
var express = require('express'); var express = require('express');
var router = express.Router(); var router = express.Router();
var v1 = require('./v1'); function initRouter(backend) {
var v2 = require('./v2'); var v1 = require('./v1')(backend);
var v2 = require('./v2')(backend);
/* GET home page. */ router.use('/v1', v1);
router.get('/', function(req, res, next) { router.use('/v2', v2);
res.send('bitcore node api');
});
router.use('/v1', v1); router.get('/', function(req, res, next) {
router.use('/v2', v2); res.send('bitcore node api');
});
module.exports = router; return router;
}
module.exports = initRouter;

View File

@ -1,11 +1,15 @@
'use strict'; 'use strict';
var express = require('express'); var express = require('express');
var router = express.Router();
/* GET home page. */ function initRouter(backend) {
router.get('/blocks', function(req, res, next) { var router = express.Router();
res.send('blocks v1');
});
module.exports = router; router.get('/blocks', function(req, res, next) {
res.send('blocks v1' + backend.status);
});
return router;
}
module.exports = initRouter;

View File

@ -1,11 +1,15 @@
'use strict'; 'use strict';
var express = require('express'); var express = require('express');
var router = express.Router();
/* GET home page. */ function initRouter(backend) {
router.get('/blocks', function(req, res, next) { var router = express.Router();
res.send('blocks v2');
});
module.exports = router; router.get('/blocks', function(req, res, next) {
res.send('blocks v2 ' + backend.nodes);
});
return router;
}
module.exports = initRouter;