mirror of
https://github.com/zebrajr/express.git
synced 2026-01-15 12:15:27 +00:00
don't call done twice for thrown errors inside parameterized routes
fixes #1995
This commit is contained in:
@@ -280,7 +280,7 @@ proto.process_params = function(route, req, res, done) {
|
||||
return param();
|
||||
}
|
||||
} catch (err) {
|
||||
done(err);
|
||||
return done(err);
|
||||
}
|
||||
|
||||
done();
|
||||
|
||||
@@ -111,6 +111,25 @@ describe('Router', function(){
|
||||
|
||||
router.handle({ url: '/foo', method: 'GET' }, {}, done);
|
||||
});
|
||||
|
||||
it('should handle throwing inside routes with params', function(done) {
|
||||
var router = new Router();
|
||||
|
||||
router.get('/foo/:id', function(req, res, next){
|
||||
throw new Error('foo');
|
||||
});
|
||||
|
||||
router.use(function(req, res, next){
|
||||
assert(false);
|
||||
});
|
||||
|
||||
router.use(function(err, req, res, next){
|
||||
assert.equal(err.message, 'foo');
|
||||
done();
|
||||
});
|
||||
|
||||
router.handle({ url: '/foo/2', method: 'GET' }, {}, done);
|
||||
});
|
||||
})
|
||||
|
||||
describe('.all', function() {
|
||||
|
||||
Reference in New Issue
Block a user