lack-proxy 用于给 Node 程序设置全局 HTTP 代理,可以将 Node 进程里面的指定 TCP 请求代理到 Whistle 等抓包调试代理。
npm i --save-dev lack-proxy
建议在程序入口设置
const lack = require('lack-proxy');
设置全局HTTP代理:
lack.proxy({
host: '127.0.0.1',
port: '8899',
// allowlist: ['ke.qq.com', '*.ke.qq.com'],
// blocklist: ['fudao.qq.com', '*.fudao.qq.com'],
// filterRequest: (options, isSocket) => {
// return true || false;
// }, // 可选,精确过滤请求
// servername, // 可选,参见Node的HTTPS文档,设置SNI
// headers, // 可选,设置代理请求头
});
程序里面的所有web请求(HTTP、HTTPS、WebSocket)都会代理到本地的 8899 端口的代理服务
根据请求参数动态设置
lack.proxy((options) => {
// 根据请求options动态设置代理
return {
host: '127.0.0.1',
port: '8899',
headers: options.headers,
// allowlist: ['ke.qq.com', '*.ke.qq.com'],
// blocklist: ['fudao.qq.com', '*.fudao.qq.com'],
// filterRequest: (options, isSocket) => {
// return true || false;
// }, // 可选,精确过滤请求
// servername, // 可选,参见Node的HTTPS文档,设置SNI
};
});
有关例子可以参见测试用例。

