cloudflare的worker中函数封装处理

35 阅读1分钟

如果把所有的逻辑都写在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>;