Commit 7976de11 authored by Dominic Tarr's avatar Dominic Tarr

support old (port,host) and (options) style when using middlewares

parent c773eede
......@@ -112,6 +112,7 @@ exports.getMaxSockets = function () {
exports.setMaxSockets = function (value) {
maxSockets = value;
};
//
// stack
// adapted from https://github.com/creationix/stack
......@@ -122,15 +123,16 @@ function stack (middlewares, proxy) {
middlewares.reverse().forEach(function (layer) {
var child = handle;
var next = function (err) {
if (err) {
throw err;
//return error(req, res, err);
}
child(req, res);
}
next.__proto__ = proxy;
handle = function (req, res) {
var next = function (err) {
if (err) {
throw err;
//TODO: figure out where to send errors.
//return error(req, res, err);
}
child(req, res);
}
next.__proto__ = proxy;
layer(req, res, next);
};
});
......@@ -167,11 +169,6 @@ exports.createServer = function () {
var proxy = new HttpProxy(options);
if(middleware.length)
//handler = callback = middleware.shift()
//else if (middleware.length)
handler = callback = stack(middleware, proxy);
if (port && host) {
//
// If we have a target host and port for the request
......@@ -183,6 +180,8 @@ exports.createServer = function () {
host: host
});
}
if(middleware.length)
middleware.push(handler)
}
else if (proxy.proxyTable) {
//
......@@ -192,13 +191,21 @@ exports.createServer = function () {
handler = function (req, res) {
proxy.proxyRequest(req, res);
}
if(middleware.length)
middleware.push(handler)
}
else if (!handler) {
//
// Otherwise this server is improperly configured.
//
throw new Error('Cannot proxy without port, host, or router.')
}
if(middleware.length)
//handler = callback = middleware.shift()
//else if (middleware.length)
handler = callback = stack(middleware, proxy);
if (!handler) {
//
// Otherwise this server is improperly configured.
//
throw new Error('Cannot proxy without port, host, or router.')
}
server = options.https
? https.createServer(options.https, handler)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment