no-image

node-http-proxyでPOSTするとError: socket hang upが起きてた問題

実をいうと、これまで、このブログはPOSTを送るだけで落ちてたようです。えっ

まあブログ見る分ならPOSTすることはないだろうしー・・・ということで今まで放置してました。おい
Error: socket hang up
at createHangUpError (http.js:1476:15)
at Socket.socketCloseListener (http.js:1526:23)
at Socket.emit (events.js:95:17)
at TCP.close (net.js:465:12)

このまま毎回POSTするたびに落ちるのはちょっとまずいので、やっと修正しました。

元のコード:

これに追加したコード。

ただerrorをキャッチするだけで修正なのか?と思いますが、これで正常に動きます。

元々、bodyParser middlewareを使用してPOSTをオブジェクト化し、req.bodyを受け取らないといけないようなのですが、
bodyParserなんて使っていないためreq.bodyがうまく受け取れずにerrorとして処理される・・・って感じらしいです。

参考:Connect ソースコードリーディング(4) – bodyParser
でも、proxyはPOSTを受け取って処理する必要はないし、問題はないのでこのままです。

一応ちゃんとした解決策として。これを解決したいなら、

  • body-parserモジュールを使用する。
  • Expressなどのbody-parserを行ってくれるフレームワークを使用する。
  • といった方法があるようです。

    参考(というかほぼ同じ問題のstackoverflow):socket hang up error with nodejs