diff --git a/lib/application.js b/lib/application.js index fd4dcf19fc..148e1fd53b 100644 --- a/lib/application.js +++ b/lib/application.js @@ -197,22 +197,7 @@ class ExpressApp extends EventEmitter { #mergeMethodsFromTargetToSource(source, target) { Object.keys(source).forEach(key => target[key] = source[key].bind(target)) } - #mergeRequestAndResponse (req, res, fn) { - if (req.originalUrl === req.baseUrl) { - this.#mergeMethodsFromTargetToSource(fn.request, req) - this.#mergeMethodsFromTargetToSource(fn.response, res) - } else { - this.#mergeMethodsFromTargetToSource(this.request, req) - this.#mergeMethodsFromTargetToSource(this.response, res) - } - } - #wrapper (fn) { - return (req, res, next) => { - this.#mergeMethodsFromTargetToSource(this.request, req) - this.#mergeMethodsFromTargetToSource(this.response, res) - fn(req, res, next) - } - } + /** * Proxy `Router#use()` to add middleware to the app router. * See Router#use() documentation for details. diff --git a/lib/router.js b/lib/router.js index 2065d05681..b42d3c571c 100644 --- a/lib/router.js +++ b/lib/router.js @@ -162,7 +162,7 @@ Router.prototype.handle = function handle (req, res, callback) { // manage inter-router variables var parentParams = req.params var parentUrl = req.baseUrl || '' - var done = restore(callback, req, 'baseUrl', 'next', 'params') + var done = callback //restore(callback, req, 'baseUrl', 'next', 'params') // setup next layer req.next = next @@ -641,24 +641,24 @@ function processParams (params, layer, called, req, res, done) { * @private */ -function restore (fn, obj) { - var props = new Array(arguments.length - 2) - var vals = new Array(arguments.length - 2) +// function restore (fn, obj) { +// var props = new Array(arguments.length - 2) +// var vals = new Array(arguments.length - 2) - for (var i = 0; i < props.length; i++) { - props[i] = arguments[i + 2] - vals[i] = obj[props[i]] - } +// for (var i = 0; i < props.length; i++) { +// props[i] = arguments[i + 2] +// vals[i] = obj[props[i]] +// } - return function () { - // restore vals - for (var i = 0; i < props.length; i++) { - obj[props[i]] = vals[i] - } +// return function () { +// // restore vals +// for (var i = 0; i < props.length; i++) { +// obj[props[i]] = vals[i] +// } - return fn.apply(this, arguments) - } -} +// return fn.apply(this, arguments) +// } +// } /** * Send an OPTIONS response. diff --git a/test/AppRouter.mjs b/test/AppRouter.mjs index dc86d76191..d7bb12c1b2 100644 --- a/test/AppRouter.mjs +++ b/test/AppRouter.mjs @@ -13,6 +13,7 @@ describe('app.router', () => { it('should restore req.params after leaving router', (t, done) => { const app = express() const router = new express.Router() + const server = app.listen() function handler1(req, res, next){ res.setHeader('x-user-id', String(req.params.id)) @@ -30,11 +31,11 @@ describe('app.router', () => { app.get('/user/:id', handler1, router, handler2) - request(app) + request(server) .get('/user/1') .expect('x-router', 'undefined') .expect('x-user-id', '1') - .expect(200, '1', done) + .expect(200, '1', () => server.close(done)) }) describe('methods', () => { @@ -382,6 +383,7 @@ describe('app.router', () => { it('should restore req.params', (t, done) => { const app = express() + const server = app.listen() const router = new express.Router({ mergeParams: true }) router.get('/user-(\\w+)/(.*)', (req, res, next) => { @@ -395,9 +397,9 @@ describe('app.router', () => { }) }) - request(app) + request(server) .get('/user/id-42/user-tj/profile') - .expect(200, '[["0","42"]]', done) + .expect(200, '[["0","42"]]', () => server.close(done)) }) })