summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
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();
}
},
};