0

コンソールに「Gotresponse」または「Goterror」のいずれかを表示したいのですが。

http.get()を使用してHTTPリクエストを実行しようとしましたが、実行しようとすると次のエラーが発生します。

D:\wamp\www\Chat\server\test.js:19
http.get("http://google.com", function(res) {
     ^
TypeError: Object #<Server> has no method 'get'
    at Object.<anonymous> (D:\wamp\www\Chat\server\test.js:19:6)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

test.js全体は次のとおりです。

var http = require('http').createServer(handler);

var fs = require('fs');

http.listen(9090);

function handler(req, res) {
    fs.readFile(__dirname + '/index.html', function(err, data) {
        if (err) {
            res.writeHead(500);
            return res.end('Error loading index.html');
        }

        res.writeHead(200);
        res.end(data);
    });
}

http.get("http://google.com", function(res) {
    console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
    console.log("Got error: " + e.message);
});

node --versioncmdで実行するとv0.8.15

4

3 に答える 3

5

get()httpオブジェクトではなく、作成したサーバーで呼び出しています。

var http = require('http').createServer(handler);

httpは次のようになります。

var http = require('http');

その後、あなたは使用することができますhttp.get();

于 2012-12-12T01:14:23.553 に答える
2

モジュールにはhttp実際にはトップレベルのgetメソッドがありますが、変数はモジュール自体ではなくhttp、のインスタンスへの参照です。http.Serverサーバーには、クライアント要求を行うためのメソッドがありません。最初の数行をに変更します

var http = require('http');

var fs = require('fs');

http.createServer(handler).listen(9090);
于 2012-12-12T01:17:27.987 に答える
1

あなたの問題は、http自体ではなく、httpServerに取得を要求していることです。getメソッドは、次のように実行すると機能します。

var http = require('http');

http.get("http://google.com", function(res) {
    console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
    console.log("Got error: " + e.message);
});

これには、サーバーを作成する必要はありません。

于 2012-12-12T01:18:20.693 に答える