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 routes = require('./routes');
function API(backend, opts) {
this.backend = backend;
this.opts = opts;
this._initApp();
}
API.prototype._initApp = function() {
this.app = express();
function init(backend) {
var app = express();
// parse POST data
this.app.use(cors());
this.app.use(bodyParser.json());
this.app.use(bodyParser.urlencoded({ extended: false }));
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
// install routes
this.app.use('/', routes);
app.use('/', routes(backend));
// 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');
err.status = 404;
next(err);
});
// production error handler
this.app.use(function(err, req, res, next) {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.send({
message: err.message,
error: {}
});
});
return app;
}
module.exports = API;
module.exports = init;

View File

@ -6,20 +6,29 @@
var API = require('../app');
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.
*/
var port = normalizePort(process.env.PORT || '8000');
api.app.set('port', port);
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(api.app);
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.

View File

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

View File

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