diff options
author | 2023-01-11 00:59:20 +0800 | |
---|---|---|
committer | 2023-01-11 00:59:20 +0800 | |
commit | 9869f2f6d8c344babb8a59cb54918de14bd95dcc (patch) | |
tree | 87ede080ad87773fb393bba52b6918566423c203 /packages/integrations/node/src | |
parent | 21a55b32765c64a2add698c28a09557f68f5c587 (diff) | |
download | astro-9869f2f6d8c344babb8a59cb54918de14bd95dcc.tar.gz astro-9869f2f6d8c344babb8a59cb54918de14bd95dcc.tar.zst astro-9869f2f6d8c344babb8a59cb54918de14bd95dcc.zip |
can jump 404 when that page does not exist (#5701)
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r-- | packages/integrations/node/src/middleware.ts | 7 | ||||
-rw-r--r-- | packages/integrations/node/src/server.ts | 4 | ||||
-rw-r--r-- | packages/integrations/node/src/standalone.ts | 2 |
3 files changed, 7 insertions, 6 deletions
diff --git a/packages/integrations/node/src/middleware.ts b/packages/integrations/node/src/middleware.ts index bfa7b74d5..1af4539a6 100644 --- a/packages/integrations/node/src/middleware.ts +++ b/packages/integrations/node/src/middleware.ts @@ -2,16 +2,17 @@ import type { NodeApp } from 'astro/app/node'; import type { IncomingMessage, ServerResponse } from 'http'; import type { Readable } from 'stream'; import { responseIterator } from './response-iterator'; +import type { Options } from './types'; -export default function (app: NodeApp) { +export default function (app: NodeApp, mode: Options['mode']) { return async function ( req: IncomingMessage, res: ServerResponse, next?: (err?: unknown) => void ) { try { - const route = app.match(req); - + const route = + mode === 'standalone' ? app.match(req, { matchNotFound: true }) : app.match(req); if (route) { try { const response = await app.render(req); diff --git a/packages/integrations/node/src/server.ts b/packages/integrations/node/src/server.ts index 9cff04cf5..e0ccf6599 100644 --- a/packages/integrations/node/src/server.ts +++ b/packages/integrations/node/src/server.ts @@ -9,10 +9,10 @@ polyfill(globalThis, { exclude: 'window document', }); -export function createExports(manifest: SSRManifest) { +export function createExports(manifest: SSRManifest, options: Options) { const app = new NodeApp(manifest); return { - handler: middleware(app), + handler: middleware(app, options.mode), }; } diff --git a/packages/integrations/node/src/standalone.ts b/packages/integrations/node/src/standalone.ts index 54a3940b4..d68c3a500 100644 --- a/packages/integrations/node/src/standalone.ts +++ b/packages/integrations/node/src/standalone.ts @@ -37,7 +37,7 @@ export function getResolvedHostForHttpServer(host: string | boolean) { export default function startServer(app: NodeApp, options: Options) { const port = process.env.PORT ? Number(process.env.PORT) : options.port ?? 8080; const { client } = resolvePaths(options); - const handler = middleware(app); + const handler = middleware(app, options.mode); // Allow to provide host value at runtime const host = getResolvedHostForHttpServer( |