http-proxy でTwitter 認証をローカル環境でのテストをちょっと便利にする方法
Node でWebアプリでTwitter 認証をローカルでテストする時に一番問題になるのは Callback URL にポート番号 "localhost" (8/1 コメントより "127.0.0.1" なら指定できる。) が指定できないことだと思う。回避策としては、hosts を書き換えて、ポート80 でサーバを起動するか、Apache とか、nginx とかをいちいち立てたり、ルールを書き換えるという手がある。が、Mac だと前者は起動時に root 権限が必要でパスワード入力が面倒だし、後者はめんどくさい。
そんな時に、hosts を書き換えた上で、http-proxy を使えば良い。
Mac OS X で hosts の書き換えは Hoster を使うと便利。
RedWinder::MacApp::Hoster
こんな感じの proxy.js を書く
var httpProxy = require('http-proxy'); var options = { hostnameOnly: true, router: { 'myhost.com': '127.0.0.1:3000' } } var proxyServer = httpProxy.createServer(options).listen(80);
あとは開発を始める前に、一回だけ proxy.js を起動しておくだけ。