Node.jsのrequestモジュールでProxyを使う方法
READMEにもやーっと書いてあるけど、えいごがむつかしくてよくわからなかった。
…ので、別途調べた。
ちなみにHTTPS Proxyは調べた過程で闇が見えたので試してない。
方法1: シェルの環境変数に従う
の環境変数が自動的に適用される。
$ http_proxy=http://127.0.0.1:8080 node test.js
複数のプログラムでProxyの設定を全適用する際に便利。
requestモジュールには依存しないが、httpモジュールにも適用されるので、ほとんどのリクエストが原則Proxy経由になるのではないかと思われる。
方法2: process.envの値を書き換える
方法1とほぼ同じだけど、
- process.env.http_proxy
- process.env.https_proxy
- process.env.no_proxy
の設定をプログラムで書き換えることもできる。
process.env.http_proxy = 'http://127.0.0.1:8080'
プログラム単位で適用させたい場合に、プログラム起動時に設定しておくと便利。
こちらもrequestモジュールには依存しない。
方法3: requestモジュールのdefaultsを使う
request = require('request').defaults proxy: 'http://127.0.0.1:8080'
ファイル内の全てのリクエストでProxyを使いたい場合に便利。
方法4: requestモジュールのオプションで設定する
request = require 'request' options = proxy: 'http://127.0.0.1:8080' request 'http://www.yahoo.co.jp/', options, (error, response, body) -> console.log body
リクエスト単位でProxyを設定したりしなかったりする場合に便利。