diff options
author | 2024-03-01 11:26:28 +0100 | |
---|---|---|
committer | 2024-03-01 10:26:28 +0000 | |
commit | 0781eb6e3680a676d3f1daf27fc75cdce86a1839 (patch) | |
tree | cbc704555e140714131ae8400847ff95f0e3ddd1 /packages/integrations/node/src | |
parent | fea77cf8324a346d5cb74ef415ac151d0f7e535c (diff) | |
download | astro-0781eb6e3680a676d3f1daf27fc75cdce86a1839.tar.gz astro-0781eb6e3680a676d3f1daf27fc75cdce86a1839.tar.zst astro-0781eb6e3680a676d3f1daf27fc75cdce86a1839.zip |
fix(node): Safely create requests (#10285)
* fix(node): Wrap request creation in try catch
* chore: changeset
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r-- | packages/integrations/node/src/serve-app.ts | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/integrations/node/src/serve-app.ts b/packages/integrations/node/src/serve-app.ts index f2fc61f01..a9840b721 100644 --- a/packages/integrations/node/src/serve-app.ts +++ b/packages/integrations/node/src/serve-app.ts @@ -8,7 +8,15 @@ import type { RequestHandler } from './types.js'; */ export function createAppHandler(app: NodeApp): RequestHandler { return async (req, res, next, locals) => { - const request = NodeApp.createRequest(req); + let request; + try { + request = NodeApp.createRequest(req); + } catch (err) { + res.statusCode = 500; + res.end('Internal Server Error'); + return; + } + const routeData = app.match(request); if (routeData) { const response = await app.render(request, { |