Node.js http.get示例

时间:2015-06-09 07:46:42

标签: node.js http module get

我发现了数百个使用带有http或https的node.js来发出GET,POST请求的例子。似乎很容易。

我创建了一个返回对象的模块。在那个对象中,我有一个名为

的函数

我在restlet模块中的功能:

restlet.makecall = function call() {
    console.log("This gets logged");
    http.get('http://www.google.com/', function(res) {
        console.log("statusCode: ", res.statusCode); //nothing
        console.log("headers: ", res.headers); //nothing

        res.on('data', function(d) {
            process.stdout.write(d);
            console.log("This doesn't get logged out"); //nothing
        });

    }).on('error', function(e) {
        console.error(e);
        console.log("This doesn't get logged out");
    });
    console.log("This gets logged");
};

我的问题是,每次运行它,或者我在所有帖子中找到的任何代码变体,NOTHING都会被注销到控制台......

我确信这个问题很简单,但我还没弄清楚。我真的很感激,如果有人能指出我正确的方向,甚至是一些我可以粘贴到实际记录出来的功能的代码。 (错误,什么!)

1 个答案:

答案 0 :(得分:1)

我认为你的网络存在问题,你的http.get回调没有被调用。我会尝试ping www.google.com - 我怀疑它不起作用。检查您的DNS?

我将代码复制到一个.js文件中,并运行它,如下所示。

var http = require('http');

function call() {
    console.log("This gets logged");
    http.get('http://www.google.com/', function(res) {
        console.log("statusCode: ", res.statusCode); //nothing
        console.log("headers: ", res.headers); //nothing

        res.on('data', function(d) {
            process.stdout.write(d);
            console.log("This doesn't get logged out"); //nothing
        });

    }).on('error', function(e) {
        console.error(e);
        console.log("This doesn't get logged out");
    });
    console.log("This gets logged");
};

call();

我运行代码没有问题,这是下面的输出。

This gets logged
This gets logged
statusCode:  302
headers:  { 'cache-control': 'private',
  'content-type': 'text/html; charset=UTF-8',
   location: 'http://www.google.com.au/?gfe_rd=cr&ei=Mpx2VfmnF6nu8wfUioDQBQ',
  'content-length': '262',
   date: 'Tue, 09 Jun 2015 07:56:34 GMT',
 server: 'GFE/2.0',
'alternate-protocol': '80:quic,p=0',
connection: 'close' }
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.au/?    gfe_rd=cr&amp;ei=Mpx2VfmnF6nu8wfUioDQBQ">here</A>.
</BODY></HTML>
This doesn't get logged out