如果把所有的逻辑都写在fetch中,显得结构不清晰,fetch其实可以作为一个全局的入口拦截校验等功能,然后把核心的handler单独提取出来作为业务层,这样结构更加清晰
async function handleRequest(request: Request, env: Env, ctx: ExecutionContext) {
const url = new URL(request.url);
if (url.pathname === '/api') {
return new Response('API响应', { status: 200 });
} else if (url.pathname === '/about') {
return new Response('关于页面', { status: 200 });
}
return new Response('未找到页面', { status: 404 });
}
export default {
async fetch(request, env, ctx): Promise<Response> {
console.log('fetch', request);
return handleRequest(request, env, ctx);
},
} satisfies ExportedHandler<Env>;