code: function(middlewares, response, callback) {
          var that = this;
          var middleware = middlewares.shift();
          if (!middleware) {
              return callback(null, response);
          }
          var middleware_callback = function(retVal) {
              /**
               * got an error
               * break middleware chain and callback
               */
              if (retVal && retVal instanceof Error) {
                  return callback(retVal, response);
              }
              /**
               * got a response object
               * break middleware chain and bypass request
               */
              if (retVal && typeof retVal == 'object') {
                  return callback(null, retVal);
              }
              that._callResponseMiddlewares(middlewares, response, callback);
          };
          try {
              middleware(response, middleware_callback);
          } catch (e) {
              callback(e, response);
          }
      }
docs: Call each middlewares with callback named 'next' for asynchronous processing.