diff options
author | 2022-07-22 15:22:31 -0400 | |
---|---|---|
committer | 2022-07-22 15:22:31 -0400 | |
commit | 3b104fb8a5c184d253d847998323e6b9c2573bcd (patch) | |
tree | bb1d1a737e0ac9ae397df60be378174a24632777 /packages/integrations/node/src | |
parent | 9970dde63062e0e9618f58ca58b61eb42a222d1f (diff) | |
download | astro-3b104fb8a5c184d253d847998323e6b9c2573bcd.tar.gz astro-3b104fb8a5c184d253d847998323e6b9c2573bcd.tar.zst astro-3b104fb8a5c184d253d847998323e6b9c2573bcd.zip |
Fixes Node adapter receiving a request body (#4023)
* Fixes Node adapter receiving a request body
* Updated lockfile
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r-- | packages/integrations/node/src/server.ts | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/packages/integrations/node/src/server.ts b/packages/integrations/node/src/server.ts index c07b5a91b..453ecb2d2 100644 --- a/packages/integrations/node/src/server.ts +++ b/packages/integrations/node/src/server.ts @@ -12,21 +12,28 @@ export function createExports(manifest: SSRManifest) { const app = new NodeApp(manifest); return { async handler(req: IncomingMessage, res: ServerResponse, next?: (err?: unknown) => void) { - const route = app.match(req); + try { + const route = app.match(req); - if (route) { - try { - const response = await app.render(req); - await writeWebResponse(res, response); - } catch (err: unknown) { - if (next) { - next(err); - } else { - throw err; + if (route) { + try { + const response = await app.render(req); + await writeWebResponse(res, response); + } catch (err: unknown) { + if (next) { + next(err); + } else { + throw err; + } } + } else if (next) { + return next(); + } + } catch(err: unknown) { + if(!res.headersSent) { + res.writeHead(500, `Server error`); + res.end(); } - } else if (next) { - return next(); } }, }; |