-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathprint-res-body.js
33 lines (31 loc) · 1.32 KB
/
print-res-body.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
* @Author: renxia
* @Date: 2024-01-22 14:00:13
* @LastEditors: renxia
* @LastEditTime: 2024-01-29 15:45:36
* @Description:
*/
/** @type {import('@lzwme/whistle.x-scripts').RuleItem} */
module.exports = {
// disabled: true, // 是否禁用该规则
on: 'res-body', // 规则执行的时机,res-body 表示在收到响应体后触发
ruleId: 'print-response-body', // 规则唯一标记,必须设置且唯一
desc: '打印接口返回内容', // 规则描述
method: '*',
url: '**', // ** 表示匹配所有 url 地址
handler({ url, req, reqBody, resHeaders, resBody, X }) {
// 只处理文本类型的请求
if (X.isText(req.headers) && !/\.(js|css)/.test(url)) {
// X 是提供的工具类对象,方便简化脚本编写逻辑调用
const { magenta, gray, cyan } = X.FeUtils.color;
console.log(`\n\n[${magenta('handler')}][${cyan(req.method)}] -`, gray(url));
console.log(cyan('req headers:'), req.headers);
console.log(cyan('res headers:'), resHeaders);
if (reqBody) console.log(cyan('请求参数:'), reqBody);
if (resBody) console.log(cyan('返回内容:'), resBody);
}
// 若返回 body 参数则会以该内容返回
// 若返回 envConfig 参数则会以该内容写入环境变量文件
// return { body: modifyedResBody, envConfig };
},
};