diff options
author | 2023-08-21 17:29:38 +0100 | |
---|---|---|
committer | 2023-08-21 17:29:38 +0100 | |
commit | 6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88 (patch) | |
tree | 565009f91ef544692556ff4d9a5714fb31cf559c /packages/integrations/node/src | |
parent | 07faa9a779fbf89e55e1870d428574b6efbf533d (diff) | |
download | astro-6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88.tar.gz astro-6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88.tar.zst astro-6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88.zip |
fix(@astrojs/node): handler should work with `express` (#8176)
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r-- | packages/integrations/node/src/nodeMiddleware.ts | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/packages/integrations/node/src/nodeMiddleware.ts b/packages/integrations/node/src/nodeMiddleware.ts index fa0cdfda8..1e0aaea0f 100644 --- a/packages/integrations/node/src/nodeMiddleware.ts +++ b/packages/integrations/node/src/nodeMiddleware.ts @@ -6,15 +6,22 @@ import { responseIterator } from './response-iterator'; import type { ErrorHandlerParams, Options, RequestHandlerParams } from './types'; // Disable no-unused-vars to avoid breaking signature change -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export default function (app: NodeApp, _mode: Options['mode']) { +export default function (app: NodeApp, mode: Options['mode']) { return async function (...args: RequestHandlerParams | ErrorHandlerParams) { let error = null; - let [req, res, next, locals] = args as RequestHandlerParams; + let locals; + let [req, res, next] = args as RequestHandlerParams; + if (mode === 'middleware') { + let { [3]: _locals } = args; + locals = _locals; + } if (args[0] instanceof Error) { - [error, req, res, next, locals] = args as ErrorHandlerParams; - + [error, req, res, next] = args as ErrorHandlerParams; + if (mode === 'middleware') { + let { [4]: _locals } = args as ErrorHandlerParams; + locals = _locals; + } if (error) { if (next) { return next(error); |