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
commit3b104fb8a5c184d253d847998323e6b9c2573bcd (patch)
treebb1d1a737e0ac9ae397df60be378174a24632777 /packages/integrations/node/src
parent9970dde63062e0e9618f58ca58b61eb42a222d1f (diff)
downloadastro-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.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();
}
},
};