summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-07-22 15:22:31 -0400
committerGravatar GitHub <noreply@github.com> 2022-07-22 15:22:31 -0400
commit4ca6a0933d92dd559327dd46a28712d918caebf7 (patch)
tree27ca6be8c801b815961bb54264cf9dec1eb38a93 /packages/integrations/node/src
parent9aecf7c7c7211f34236d8dde624ca388310d3727 (diff)
downloadastro-4ca6a0933d92dd559327dd46a28712d918caebf7.tar.gz
astro-4ca6a0933d92dd559327dd46a28712d918caebf7.tar.zst
astro-4ca6a0933d92dd559327dd46a28712d918caebf7.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.ts31
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();
}
},
};