エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

Node.jsのrequestモジュールでProxyを使う方法

READMEにもやーっと書いてあるけど、えいごがむつかしくてよくわからなかった。

…ので、別途調べた。

ちなみにHTTPS Proxyは調べた過程で闇が見えたので試してない。

方法1: シェルの環境変数に従う

  • http_proxy, HTTP_PROXY
  • https_proxy, HTTPS_PROXY
  • no_proxy, NO_PROXY

環境変数が自動的に適用される。

$ 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を設定したりしなかったりする場合に便利。