node.js不能使用http进行其他的调用

我是新来的node.js,我想做一个HTTP请求。 我跟着一个试图打电话给random.org的教程。 这是我的app.js文件:

var http = require('http'); //The url we want is: 'www.random.org/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new' var options = { host: 'www.random.org', path: '/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new' }; callback = function(response) { var str = ''; //another chunk of data has been recieved, so append it to `str` response.on('data', function (chunk) { str += chunk; }); //the whole response has been recieved, so we just print it out here response.on('end', function () { console.log(str); }); response.on('error', function () { console.log("err"); }); } http.request(options, callback).end(); 

所以,无论如何,运行这个文件时使用

 node app.js 

我得到以下错误到控制台:

 C:\Program Files\nodejs>node app.js events.js:72 throw er; // Unhandled 'error' event ^ Error: connect ETIMEDOUT at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) 

2个问题:
1.为什么我得到时间错误(网站工作 – 我检查)
2.无论如何 – 为什么我没有捕捉到这个错误,尽pipe我在响应中有一个错误监听器。

任何可能的帮助将不胜感激!

谢谢

您将错误侦听器附加到响应中,但请求本身发生错误。 做这样的事情:

 http.request(options, callback) .on('error', function () { console.log("err in request"); }) .end(); 

错误意味着网站是可用的,如果没有错误会显示EHOSTUNREACHETIMEDOUT意味着请求的响应速度不够快。 这需要一些调查,lke是networking,请尝试www.google.com 。 它正在考虑的超时值是多less? 等等

好。 我试图运行这个独立的节点js进程没有浏览器作为背景。 这是不推荐的,在上面指定的情况下,问题是这个无标头的请求缺lesscookie。

如果我将包装一切在一个createServer方法,并根据请求,我会做相同的参数+服务器请求cookie的http.request – 这将工作。