如何在SvelteKit的API目录中创建全匹配兜底路由?
在SvelteKit中为API目录创建全局兜底路由
要为/src/routes/api/下所有未定义的GET、POST、DELETE和PUT请求创建兜底路由,按以下步骤操作即可:
在
src/routes/api/目录下创建名为[...catchall]+server.js(若用TypeScript则为.ts)的文件[...catchall]是SvelteKit的全匹配路由参数,会捕获所有未被其他具体API路由覆盖的路径
在该文件中导出对应HTTP方法的处理函数,返回404错误响应:
import { error } from '@sveltejs/kit'; export function GET() { throw error(404, 'API endpoint not found'); } export function POST() { throw error(404, 'API endpoint not found'); } export function DELETE() { throw error(404, 'API endpoint not found'); } export function PUT() { throw error(404, 'API endpoint not found'); }
核心逻辑
SvelteKit路由匹配遵循具体路由优先规则:如果已有定义的API路由(比如api/users/+server.js)能匹配请求路径,会优先触发该路由;只有当没有任何具体路由匹配时,这个兜底路由才会生效,处理对应的HTTP方法。
内容的提问来源于stack exchange,提问作者Anuj Subedi
相关产品推荐
相关产品推荐

