0

node.jsを使用してxmlhttprequestを介してWebページからhtmlを取得しようとしています。インターネットで見つけたコードは次のとおりです。

var sys = require ('sys'),
url = require('url'),
XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest,
http = require('http'),
qs = require('querystring');
http.createServer(function (req, res) {
    var temp        
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
        var loc = xhr.responseText.search("Right Now");
        temp = xhr.responseText.substr(loc,loc+10);
        //console.log(temp);
        }
    }
xhr.open('GET', 'http://www.weather.com/weather/today/37.229572,-80.413940', true);
xhr.send(null);
console.log(temp);
res.write("pappu\n");
res.end();
}
).listen(80);

関数の外で xhr.responseText を使用したいのですが、できません。グローバルにするためにtempでvarを使用しないようにしましたが、node.jsはこれでエラーを出しています。

よろしくお願いします

4

2 に答える 2

0

あなたは使用することに夢中xmlhttprequestですか?ノードを使用しているため、人気のあるリクエストライブラリのように、この機能をラップするより簡単でクリーンなソリューションがあります。以下は、はるかに少ないコード行で目的の結果を実現する例です。

var request = require('request');
request.get('http://www.weather.com/weather/today/37.229572,-80.413940', callback);

function callback(err, res){
  if (err) return console.error(err);
  console.log(res.body);
}

npm install requestこれを正しく実行するには、実行するだけです。何らかの理由で xmlhttprequest を使用する必要がある場合はお知らせください。この回答を手順で更新します。最初に同じことを達成するためのより簡単な方法を提案したいと思います:)

于 2013-10-26T20:52:48.297 に答える