# MiddlewareService Orchestrates dynamic middleware registered through the Medusa Middleware API ## Constructors ### constructor **new MiddlewareService**() #### Defined in [medusa/src/services/middleware.ts:22](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L22) ## Properties ### postAuthentication\_ `Protected` `Readonly` **postAuthentication\_**: `middlewareType`[] #### Defined in [medusa/src/services/middleware.ts:17](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L17) ___ ### preAuthentication\_ `Protected` `Readonly` **preAuthentication\_**: `middlewareType`[] #### Defined in [medusa/src/services/middleware.ts:18](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L18) ___ ### preCartCreation\_ `Protected` `Readonly` **preCartCreation\_**: `RequestHandler`<`ParamsDictionary`, `any`, `any`, `ParsedQs`, Record<`string`, `any`\>\>[] #### Defined in [medusa/src/services/middleware.ts:19](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L19) ___ ### routers `Protected` `Readonly` **routers**: Record<`string`, `Router`[]\> #### Defined in [medusa/src/services/middleware.ts:20](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L20) ## Methods ### addPostAuthentication **addPostAuthentication**(`middleware`, `options`): `void` Adds a middleware function to be called after authentication is completed. #### Parameters | Name | Description | | :------ | :------ | | `middleware` | `middlewareHandlerType` | the middleware function. Should return a middleware function. | | `options` | Record<`string`, `unknown`\> | the arguments that will be passed to the middleware | #### Returns `void` -`void`: (optional) void #### Defined in [medusa/src/services/middleware.ts:60](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L60) ___ ### addPreAuthentication **addPreAuthentication**(`middleware`, `options`): `void` Adds a middleware function to be called before authentication is completed. #### Parameters | Name | Description | | :------ | :------ | | `middleware` | `middlewareHandlerType` | the middleware function. Should return a middleware function. | | `options` | Record<`string`, `unknown`\> | the arguments that will be passed to the middleware | #### Returns `void` -`void`: (optional) void #### Defined in [medusa/src/services/middleware.ts:79](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L79) ___ ### addPreCartCreation **addPreCartCreation**(`middleware`): `void` Adds a middleware function to be called before cart creation #### Parameters | Name | Description | | :------ | :------ | | `middleware` | `RequestHandler`<`ParamsDictionary`, `any`, `any`, `ParsedQs`, Record<`string`, `any`\>\> | the middleware function. Should return a middleware function. | #### Returns `void` -`void`: (optional) #### Defined in [medusa/src/services/middleware.ts:96](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L96) ___ ### addRouter **addRouter**(`path`, `router`): `void` #### Parameters | Name | | :------ | | `path` | `string` | | `router` | `Router` | #### Returns `void` -`void`: (optional) #### Defined in [medusa/src/services/middleware.ts:29](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L29) ___ ### getRouters **getRouters**(`path`): `Router`[] #### Parameters | Name | | :------ | | `path` | `string` | #### Returns `Router`[] -`Router[]`: -`Router`: #### Defined in [medusa/src/services/middleware.ts:34](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L34) ___ ### usePostAuthentication **usePostAuthentication**(`app`): `void` Adds post authentication middleware to an express app. #### Parameters | Name | Description | | :------ | :------ | | `app` | `Router` | the express app to add the middleware to | #### Returns `void` -`void`: (optional) #### Defined in [medusa/src/services/middleware.ts:106](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L106) ___ ### usePreAuthentication **usePreAuthentication**(`app`): `void` Adds pre authentication middleware to an express app. #### Parameters | Name | Description | | :------ | :------ | | `app` | `Router` | the express app to add the middleware to | #### Returns `void` -`void`: (optional) #### Defined in [medusa/src/services/middleware.ts:117](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L117) ___ ### usePreCartCreation **usePreCartCreation**(): `RequestHandler`<`ParamsDictionary`, `any`, `any`, `ParsedQs`, Record<`string`, `any`\>\>[] #### Returns `RequestHandler`<`ParamsDictionary`, `any`, `any`, `ParsedQs`, Record<`string`, `any`\>\>[] -`RequestHandler\>[]`: -`RequestHandler`: -`any`: (optional) -`any`: (optional) -`Record`: #### Defined in [medusa/src/services/middleware.ts:123](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L123) ___ ### validateMiddleware\_ **validateMiddleware_**(`fn`): `void` Validates a middleware function, throws if fn is not of type function. #### Parameters | Name | Description | | :------ | :------ | | `fn` | `unknown` | the middleware function to validate. | #### Returns `void` -`void`: (optional) nothing if the middleware is a function #### Defined in [medusa/src/services/middleware.ts:43](https://github.com/medusajs/medusa/blob/0af6e5534/packages/medusa/src/services/middleware.ts#L43)