是否有一种方法可以在Sveltekit中以编程方式创建路由?



Sveltekit有一个基于文件系统的路由器,但我想知道我是否可以以编程方式创建路由?

目标是复制类似React-admin的东西,一个基于React的CRUD UI框架,在那里你声明你想要管理的资源以及制作这些管理页面的视图,并让编程代码生成连接到后端的所有路由和管道。

您可以查看高级路由模式,如rest参数:https://kit.svelte.dev/docs/advanced-routing#optional-parameters

如果这还不够,您可以创建一个服务器钩子来单独处理每个请求:

每当SvelteKit服务器接收到请求时,无论该请求是在应用程序运行时发生的,还是在预呈现期间发生的,该函数都会运行并确定响应。它接收一个表示请求的事件对象和一个名为resolve的函数,该函数呈现路由并生成一个Response。这允许你修改响应头或响应体,或完全绕过SvelteKit(例如,通过编程实现路由)。

src/hooks.server.js:

/** @type {import('@sveltejs/kit').Handle} */
export async function handle({ event, resolve }) {
if (event.url.pathname.startsWith('/custom')) {
return new Response('custom response');
}

const response = await resolve(event);
return response;
}

https://kit.svelte.dev/docs/hooks server-hooks-handle

最新更新