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

This commit is contained in:
Dominic Tarr 2011-07-25 22:51:09 +10:00
parent c773eedeb6
commit 7976de1121

View File

@ -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;
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;
handle = function (req, res) {
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,8 +191,16 @@ exports.createServer = function () {
handler = function (req, res) {
proxy.proxyRequest(req, res);
}
if(middleware.length)
middleware.push(handler)
}
else if (!handler) {
if(middleware.length)
//handler = callback = middleware.shift()
//else if (middleware.length)
handler = callback = stack(middleware, proxy);
if (!handler) {
//
// Otherwise this server is improperly configured.
//