如何仅在开发环境中使用proxyAgent

时间:2019-07-08 13:56:54

标签: javascript node.js object https-proxy-agent

我目前被迫评论或取消评论我的请求对象中的一行,这取决于我的应用程序当前运行的是本地系统还是生产型服务器。

我已经尝试使用bool变量解决此问题,但是它不起作用。这是我的代码

const dev = true;
const devProxy = dev
  ? {agent: new HttpsProxyAgent("http://proxy:80")}
  : {};

 myFunc: async access_token => {
    const response = await fetch(
      URL,
      {
        // agent: new HttpsProxyAgent("http://proxy:89´0"),
        devProxy,
        method: "GET",
        headers: {
          Accept: "application/json",
          "Content-Type": "application/json",
          Authorization: `Bearer ${access_token.access_token}`
        }
      }
    );
    if (response.ok) {
      return response.json();
    }
    throw new Error(
      "bla" +
        response.status +
        " StatusText: " +
        response.statusText
    );
  },

该错误表明未使用代理。

我该如何正确做?

1 个答案:

答案 0 :(得分:1)

您可以执行多项操作,可以将对象隔离到另一个变量并设置代理。或者,您也可以Object.assign agent键。 最简单的是分配一个变量:

const dev = true;
const options = {
  method: "GET",
  headers: {
    Accept: "application/json",
    "Content-Type": "application/json",
    Authorization: `Bearer ${access_token.access_token}`
  }
}
if (dev) options.agent = new HttpsProxyAgent("http://proxy:80");

myFunc: async access_token => {
  const response = await fetch(
    URL,
    options
  );
  if (response.ok) {
    return response.json();
  }
  throw new Error(
    "bla" +
    response.status +
    " StatusText: " +
    response.statusText
  );
},