MCPcopy Create free account
hub / github.com/zxlie/FeHelper / handleMockRequest

Function handleMockRequest

apps/postman/sw.js:64–128  ·  view source on GitHub ↗
(request, mockApi)

Source from the content-addressed store, hash-verified

62
63// 处理Mock请求
64async function handleMockRequest(request, mockApi) {
65 try {
66 // 模拟网络延迟
67 await new Promise(resolve => setTimeout(resolve, mockApi.delay));
68
69 // 获取请求体数据
70 let requestData = null;
71 try {
72 const contentType = request.headers.get('content-type');
73 if (contentType && contentType.includes('application/json')) {
74 requestData = await request.json();
75 } else if (contentType && contentType.includes('application/x-www-form-urlencoded')) {
76 const formData = await request.text();
77 requestData = parseFormData(formData);
78 }
79 } catch (e) {
80 console.log('Mock Server: 无法解析请求体', e);
81 }
82
83 // 构建响应数据
84 const responseData = {
85 ...mockApi.response,
86 request: {
87 method: request.method,
88 url: request.url,
89 headers: Object.fromEntries(request.headers.entries()),
90 body: requestData
91 },
92 server: {
93 name: 'FeHelper Mock Server',
94 version: '1.0.0',
95 poweredBy: 'Service Worker'
96 }
97 };
98
99 // 返回响应
100 return new Response(JSON.stringify(responseData, null, 2), {
101 status: 200,
102 statusText: 'OK',
103 headers: {
104 'Content-Type': 'application/json; charset=utf-8',
105 'Access-Control-Allow-Origin': '*',
106 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
107 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
108 'X-Powered-By': 'FeHelper Mock Server',
109 'X-Response-Time': mockApi.delay + 'ms'
110 }
111 });
112
113 } catch (error) {
114 // 错误响应
115 return new Response(JSON.stringify({
116 success: false,
117 error: 'Mock服务器内部错误',
118 message: error.message,
119 timestamp: new Date().toISOString()
120 }, null, 2), {
121 status: 500,

Callers 1

sw.jsFile · 0.85

Calls 3

setTimeoutFunction · 0.85
parseFormDataFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected