diff --git a/src/RoutingControllers.ts b/src/RoutingControllers.ts index 7b4e3231..adaad65c 100644 --- a/src/RoutingControllers.ts +++ b/src/RoutingControllers.ts @@ -95,7 +95,7 @@ export class RoutingControllers { .buildMiddlewareMetadata(classes) .filter(middleware => middleware.global && middleware.type === type) .sort((middleware1, middleware2) => middleware2.priority - middleware1.priority) - .forEach(middleware => this.driver.registerMiddleware(middleware)); + .forEach(middleware => this.driver.registerMiddleware(middleware, this.options)); return this; } diff --git a/src/driver/BaseDriver.ts b/src/driver/BaseDriver.ts index 9c48189a..89fde161 100644 --- a/src/driver/BaseDriver.ts +++ b/src/driver/BaseDriver.ts @@ -8,6 +8,7 @@ import { ActionMetadata } from '../metadata/ActionMetadata'; import { ParamMetadata } from '../metadata/ParamMetadata'; import { MiddlewareMetadata } from '../metadata/MiddlewareMetadata'; import { Action } from '../Action'; +import { RoutingControllersOptions } from '../RoutingControllersOptions'; /** * Base driver functionality for all other drivers. @@ -180,7 +181,7 @@ export abstract class BaseDriver { /** * Registers given middleware. */ - abstract registerMiddleware(middleware: MiddlewareMetadata): void; + abstract registerMiddleware(middleware: MiddlewareMetadata, options: RoutingControllersOptions): void; /** * Registers action in the driver. diff --git a/src/driver/express/ExpressDriver.ts b/src/driver/express/ExpressDriver.ts index 5cffdb60..d7547dd8 100644 --- a/src/driver/express/ExpressDriver.ts +++ b/src/driver/express/ExpressDriver.ts @@ -11,7 +11,7 @@ import { AuthorizationCheckerNotDefinedError } from '../../error/AuthorizationCh import { isPromiseLike } from '../../util/isPromiseLike'; import { getFromContainer } from '../../container'; import { AuthorizationRequiredError } from '../../error/AuthorizationRequiredError'; -import { NotFoundError } from '../../index'; +import { NotFoundError, RoutingControllersOptions } from '../../index'; // eslint-disable-next-line @typescript-eslint/no-var-requires const cookie = require('cookie'); @@ -54,7 +54,7 @@ export class ExpressDriver extends BaseDriver { /** * Registers middleware that run before controller actions. */ - registerMiddleware(middleware: MiddlewareMetadata): void { + registerMiddleware(middleware: MiddlewareMetadata, options: RoutingControllersOptions): void { let middlewareWrapper; // if its an error handler then register it with proper signature in express @@ -88,7 +88,7 @@ export class ExpressDriver extends BaseDriver { writable: true, }); - this.express.use(middlewareWrapper); + this.express.use(options.routePrefix || '/', middlewareWrapper); } }