npm install http-getを使い、URLの内容をhttp.getし、その取得結果を戻り値にして汎用的に使えるようにしたいと考えています。ただ初心者で下のプログラムでreturnの戻り値がundefineになっていて、ちょっと困っています。
理解してないので回避策がわかってないません。node.jsでfunctionの戻り値にURLのresponse結果を入れたい場合どうすればよろしいでしょうか。
var http = require('http-get');
var result = http_request('http://127.0.0.1:1234/');
console.log(result);
function http_request(urlstring){
var options = {url: urlstring};
http.get(options, function (error, result) {
if (error) {
console.error(error);
} else {
// console.log('The XML document contents: ' + result.buffer);
return result.buffer;
}
});
}
undefinedになる原因はhttp.getの処理が非同期で進むので、console.logの時点で結果が得られていないからです。
async.jsのようなもので処理待ちすればいいと思います。
まだ理解がおいついてなく、コードはかけてないですが、がんばってよんでみます。ありがとうございます。
具体的ではないかもしれませんがperlのLWP::Simple(http://www.augustus.to/blog/3128/archives/000054.html)みたいにURLを渡して、簡単にデータを取得できるhttp clientのfunctionを作りたいという意味合いです。
2012/05/17 17:18:49