NodeJS 请求——如何从环境中禁用自动代理

Mop*_*ath 5 node.js

我正在使用 request npm 模块在我的程序中发出 http 请求。request 的默认行为似乎是它会尝试使用代理服务器,当在环境中定义时。

我正在多个开发人员使用的共享 unix 服务器中对此进行测试,他们不断更改代理设置。此外,我不需要代理,因为我只是直接连接局域网内的其他Web服务。

那么,有没有办法告诉“请求”不要使用代理选项,即使它是在环境中设置的?

Pic*_*tor 5

在评论中归功于@mh-cbon。在这里编码以完成答案。

在启动 nodejs 之前清空配置的代理

HTTPS_PROXY="" node script.js
Run Code Online (Sandbox Code Playgroud)

或使用 NO_PROXY,禁用指定模式(或全部)的代理

NO_PROXY="*" node script.js
Run Code Online (Sandbox Code Playgroud)

或者,在您的节点 js 脚本中,在加载和使用请求模块之前执行上述操作。

// Disable proxy from being used by request module
process.env["NO_PROXY"]="";

// Then go on as per normal
const request = require("request")
... do stuff ..
Run Code Online (Sandbox Code Playgroud)

  • 就我的内联方法而言,添加主机名或星号 (*) 作为值而不是仅使用双引号即可。示例:`process.env["NO_PROXY"]="*";` (2认同)