mirror of
https://github.com/withastro/astro.git
synced 2025-01-27 22:19:04 -05:00
qol(routing): improve endpoint error message (#10072)
* Clarify error messages in endpoint routing. * add changeset
This commit is contained in:
parent
7371e1b5fc
commit
8106178043
2 changed files with 14 additions and 2 deletions
5
.changeset/sweet-chicken-sneeze.md
Normal file
5
.changeset/sweet-chicken-sneeze.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
"astro": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Clarifies error messages in endpoint routing.
|
|
@ -23,10 +23,10 @@ export async function renderEndpoint(
|
||||||
)} requests are not available for a static site. Update your config to \`output: 'server'\` or \`output: 'hybrid'\` to enable.`
|
)} requests are not available for a static site. Update your config to \`output: 'server'\` or \`output: 'hybrid'\` to enable.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (typeof handler !== 'function') {
|
if (handler === undefined) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
'router',
|
'router',
|
||||||
`No API Route handler exists for the method "${method}" for the route ${url.pathname}.\n` +
|
`No API Route handler exists for the method "${method}" for the route "${url.pathname}".\n` +
|
||||||
`Found handlers: ${Object.keys(mod)
|
`Found handlers: ${Object.keys(mod)
|
||||||
.map((exp) => JSON.stringify(exp))
|
.map((exp) => JSON.stringify(exp))
|
||||||
.join(', ')}\n` +
|
.join(', ')}\n` +
|
||||||
|
@ -38,6 +38,13 @@ export async function renderEndpoint(
|
||||||
// 404. Should be handled by 404.astro route if possible.
|
// 404. Should be handled by 404.astro route if possible.
|
||||||
return new Response(null, { status: 404 });
|
return new Response(null, { status: 404 });
|
||||||
}
|
}
|
||||||
|
if (typeof handler !== "function") {
|
||||||
|
logger.error(
|
||||||
|
'router',
|
||||||
|
`The route "${url.pathname}" exports a value for the method "${method}", but it is of the type ${typeof handler} instead of a function.`
|
||||||
|
);
|
||||||
|
return new Response(null, { status: 500 });
|
||||||
|
}
|
||||||
|
|
||||||
const response = await handler.call(mod, context);
|
const response = await handler.call(mod, context);
|
||||||
// Endpoints explicitly returning 404 or 500 response status should
|
// Endpoints explicitly returning 404 or 500 response status should
|
||||||
|
|
Loading…
Add table
Reference in a new issue