@@ -53,18 +53,18 @@ export class ExpressDriver extends BaseDriver {
53
53
* Registers middleware that run before controller actions.
54
54
*/
55
55
registerMiddleware ( middleware : MiddlewareMetadata ) : void {
56
+ let middlewareWrapper ;
56
57
57
58
// if its an error handler then register it with proper signature in express
58
59
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 ) => {
60
61
( middleware . instance as ExpressErrorMiddlewareInterface ) . error ( error , request , response , next ) ;
61
- } ) ;
62
- return ;
62
+ } ;
63
63
}
64
64
65
65
// 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 ) => {
68
68
try {
69
69
const useResult = ( middleware . instance as ExpressMiddlewareInterface ) . use ( request , response , next ) ;
70
70
if ( isPromiseLike ( useResult ) ) {
@@ -77,7 +77,17 @@ export class ExpressDriver extends BaseDriver {
77
77
} catch ( error ) {
78
78
this . handleError ( error , undefined , { request, response, next} ) ;
79
79
}
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
80
88
} ) ;
89
+
90
+ this . express . use ( middlewareWrapper ) ;
81
91
}
82
92
}
83
93
0 commit comments