@@ -53,18 +53,18 @@ export class ExpressDriver extends BaseDriver {
5353 * Registers middleware that run before controller actions.
5454 */
5555 registerMiddleware ( middleware : MiddlewareMetadata ) : void {
56+ let middlewareWrapper ;
5657
5758 // if its an error handler then register it with proper signature in express
5859 if ( ( middleware . instance as ExpressErrorMiddlewareInterface ) . error ) {
59- this . express . use ( function ( error : any , request : any , response : any , next : ( err ?: any ) => any ) {
60+ middlewareWrapper = ( error : any , request : any , response : any , next : ( err ?: any ) => any ) => {
6061 ( middleware . instance as ExpressErrorMiddlewareInterface ) . error ( error , request , response , next ) ;
61- } ) ;
62- return ;
62+ } ;
6363 }
6464
6565 // if its a regular middleware then register it as express middleware
66- if ( ( middleware . instance as ExpressMiddlewareInterface ) . use ) {
67- this . express . use ( ( request : any , response : any , next : ( err : any ) => any ) => {
66+ else if ( ( middleware . instance as ExpressMiddlewareInterface ) . use ) {
67+ middlewareWrapper = ( request : any , response : any , next : ( err : any ) => any ) => {
6868 try {
6969 const useResult = ( middleware . instance as ExpressMiddlewareInterface ) . use ( request , response , next ) ;
7070 if ( isPromiseLike ( useResult ) ) {
@@ -77,7 +77,17 @@ export class ExpressDriver extends BaseDriver {
7777 } catch ( error ) {
7878 this . handleError ( error , undefined , { request, response, next} ) ;
7979 }
80+ } ;
81+ }
82+
83+ if ( middlewareWrapper ) {
84+ // Name the function for better debugging
85+ Object . defineProperty ( middlewareWrapper , "name" , {
86+ value : middleware . instance . constructor . name ,
87+ writable : true
8088 } ) ;
89+
90+ this . express . use ( middlewareWrapper ) ;
8191 }
8292 }
8393
0 commit comments