1- function next ( middlewares , req , res , index , routerPatterns = { } , defaultRoute ) {
1+ function next ( middlewares , req , res , index , routerPatterns = { } , defaultRoute , errorHandler ) {
22 const middleware = middlewares [ index ]
33 if ( ! middleware ) {
44 if ( ! res . finished ) {
@@ -9,20 +9,24 @@ function next (middlewares, req, res, index, routerPatterns = {}, defaultRoute)
99 }
1010
1111 function step ( err ) {
12- if ( err ) throw err
13- return next ( middlewares , req , res , ++ index , routerPatterns , defaultRoute )
12+ if ( err ) errorHandler ( err , req , res )
13+ return next ( middlewares , req , res , ++ index , routerPatterns , defaultRoute , errorHandler )
1414 }
1515
16- if ( middleware . id ) {
16+ try {
17+ if ( middleware . id ) {
1718 // nested routes support
18- const pattern = routerPatterns [ middleware . id ]
19- if ( pattern ) {
20- req . preRouterUrl = req . url
21- req . url = req . url . replace ( pattern , '' )
19+ const pattern = routerPatterns [ middleware . id ]
20+ if ( pattern ) {
21+ req . preRouterUrl = req . url
22+ req . url = req . url . replace ( pattern , '' )
23+ }
24+ middleware . lookup ( req , res , step )
25+ } else {
26+ return middleware ( req , res , step )
2227 }
23- middleware . lookup ( req , res , step )
24- } else {
25- return middleware ( req , res , step )
28+ } catch ( err ) {
29+ errorHandler ( err , req , res )
2630 }
2731}
2832
0 commit comments