人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

node.jsで汎用的なhttp_requestするfunctionを作りたいと考えています。
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;
}
});
}

●質問者: studio2021
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tomoya61
●50ポイント

モウチョイ具体的にいえばわかる人がたくさんくると思います。


studio2021さんのコメント
具体的ではないかもしれませんがperlのLWP::Simple(http://www.augustus.to/blog/3128/archives/000054.html)みたいにURLを渡して、簡単にデータを取得できるhttp clientのfunctionを作りたいという意味合いです。

2 ● Cherenkov
●50ポイント

undefinedになる原因はhttp.getの処理が非同期で進むので、console.logの時点で結果が得られていないからです。
async.jsのようなもので処理待ちすればいいと思います。


studio2021さんのコメント
まだ理解がおいついてなく、コードはかけてないですが、がんばってよんでみます。ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ