前言
此文默认看官都已经懂得如何使用抓包工具了,如果不懂抓包工具的作用的话,可以先去其他地方了解一下
背景
当我们开发node服务,或SSR项目时,我们经常需要调下游接口。在开发过程中,下游接口会先部署到测试环境,我们访问下游测试环境时需要给请求增加请求头。我们通过抓包的方式,很容易给请求增加请求头
目前痛点
相信会用抓包工具的同学,去抓包项目时,会发现,只能抓到前端(浏览器发出)的包,抓不到node服务发出的包
抓不到node服务发出包,我们就无法代理增加请求头 等
解决办法
其实也很简单:为你的node服务的启动,增加4个环境变量
- ENABLE_FETCH_PROXY=true (可以抓到 node-fetch 的请求)
- http_proxy=http://127.0.0.1:8899 (8899指的是代理工具的端口号,比如whistle的默认是8899)
- https_proxy=http://127.0.0.1:8899
- NODE_TLS_REJECT_UNAUTHORIZED=0
例如:
// package.json
{
"scripts": {
// 假设原本是这么启动的:
"dev": "cross-env NODE_ENV=development HOST=0.0.0.0 PORT=1111 nodemon server/index.js --watch server",
// 增加3个代理后:
"dev-proxy": "cross-env ENABLE_FETCH_PROXY=true http_proxy=http://127.0.0.1:8899 https_proxy=http://127.0.0.1:8899 NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_ENV=development HOST=0.0.0.0 PORT=1111 nodemon server/index.js --watch server",
}
}
码字不易,点赞鼓励!