stub-server
Version:
Stub server which do response depends on json configuration file
42 lines (35 loc) • 1.23 kB
JavaScript
var http = require('http'),
configuration = require('./configuration'),
Router = require('./router'),
_ = require('underscore'),
log = require('./logger'),
MESSAGES = require('./MESSAGES');
function requestHandler(req, res, next) {
next = next || notFound(res);
var router = new Router(req, res);
router.getResponse()
.done(function (stub) {
stub.headers.forEach(function (header) {
res.setHeader(header.name, header.value);
});
res.setHeader('Content-Type', stub.contentType);
res.writeHead(stub.statusCode);
res.end(stub.body);
})
.failed(function () {
next();
});
}
function notFound(res) {
return function(){
res.statusCode = 400;
res.end();
}
}
exports.run = function () {
configuration.getConfig().done(function (config) {
http.createServer(requestHandler).listen(config.server.port || 9000, '0.0.0.0');
log.info(MESSAGES.INFO.SERVER_STARTED_AT_PORT, config.server.port || 9000);
});
};
exports.requestHandler = requestHandler;