summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
authorGravatar wulinsheng123 <409187100@qq.com> 2023-01-11 00:59:20 +0800
committerGravatar GitHub <noreply@github.com> 2023-01-11 00:59:20 +0800
commit9869f2f6d8c344babb8a59cb54918de14bd95dcc (patch)
tree87ede080ad87773fb393bba52b6918566423c203 /packages/integrations/node/src
parent21a55b32765c64a2add698c28a09557f68f5c587 (diff)
downloadastro-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.ts7
-rw-r--r--packages/integrations/node/src/server.ts4
-rw-r--r--packages/integrations/node/src/standalone.ts2
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(