node.jsでHTTP通信をするためのサーバーとクライアントを作りました
エコーサーバはlocalhostでport:1337で待ち受けて、クライアントからPOSTでリクエストがきたら処理するようにしています
HTTPエコーサーバ
https://github.com/kcpjunky/node_http/blob/master/http_server_echo.js
クライアントは、待ち受けているエコーサーバに対して1337ポートでアクセスして、
メッセージをPOSTメソッドで送るようにしています
HTTPクライアント
https://github.com/kcpjunky/node_http/blob/master/httpClient.js
エコーサーバを立ち上げ忘れた状態で、HTTPクライアントを起動したときに、以下のエラーがでました。
throw er; // Unhandled 'error' event,
Error: connect ECONNREFUSED
at errnoException (net.js:884:11)
at Object.afterConnect [as oncomplete] (net.js:875:19)error' event
エラーイベントがハンドリングされていない
ということで、はじめはhttpServerとhttpClientの扱うイベントについてりかいしていなくて、エラーの意味がわからなかったです。
サーバーが立ち上がっていないから、クライアントがリクエストしてもエラーがかえってくるよなという当たり前のことに気付き、そういえばhttpClient.jsで、エラーの場合の処理を書いていなかったのが原因だったことがわかりました。
以下が対処法です
https://gist.github.com/kcpjunky/7963541
githubいろいろつかいはじめたので、コードはgithubの方にまとめようかと思います。
ちなみにこの Unhandling 'error' event というエラーに関しては以下で詳しく書かれてます
http://stackoverflow.com/questions/4328540/how-to-catch-http-client-request-exceptions-in-node-js