Skip to content

Instantly share code, notes, and snippets.

@kcpjunky
Created December 14, 2013 19:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kcpjunky/7963541 to your computer and use it in GitHub Desktop.
Save kcpjunky/7963541 to your computer and use it in GitHub Desktop.
node Unhandled 'error' event
node.jsのコードをかきはじめた際に、httpモジュールを使ったサーバへのHTTP通信を行うコードを書くと思います。
そのときに、requestオブジェクトに対するイベントリスナーをうっかり書き忘れると以下のエラーが出てきます
httpサーバーに対してクライアントとしてHTTP通信するhttpClient.jsを実行したときのエラー
よく見かけていたけど意味がわかっていなかった
つまり、サーバーにリクエストしたけど、エラーが返った時の処理を書いていなかったため、このエラーがでた
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED
at errnoException (net.js:884:11)
at Object.afterConnect [as oncomplete] (net.js:875:19)
var http = require('http');
var options = {
host: 'localhost',
port: 1337,
path: '/',
method: 'POST'
};
var req = http.request(options,function(res) {
var data = '';
res.on('data',function(chunk) {
data += chunk;
});
res.on('end',function() {
console.log(data);
});
res.on('error',function(err) {
console.log("something wrong");
});
});
//この処理を書いてないからエラーになった
//つまり、サーバーに対してリクエストして、エラーが返ったときのリスナーを設定していなかったから
//エラーイベントがハンドリングされていないため
// req.on('error', function(err) {
// console.log("request error");
// });
var msg = 'hello from http client request';
req.setHeader('Content-Length', Buffer.byteLength(msg));
req.write(msg);
req.end();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment