Azure网站node.js http请求失败

时间:2012-09-30 08:26:11

标签: node.js azure

我正在尝试使用node.js和git部署Azure网站的免费层。它非常灵活,但是我试图在我的一个处理程序中对Facebook进行Web服务调用,并且它因500内部服务器错误和以下堆栈跟踪而失败:

Application has thrown an uncaught exception and is terminated:
Error: connect EADDRNOTAVAIL
at errnoException (net.js:670:11)
at connect (net.js:548:19)
at Socket.connect (net.js:613:5)
at Object.<anonymous> (net.js:77:12)
at new ClientRequest (http.js:1091:25)
at Object.request (http.js:1427:10)
at Object.get (http.js:1432:21)

本地运行时代码运行正常。这是Azure网站的限制,还是有其他方法可以使这项工作?我的代码看起来像这样(我使用快递):

app.get('/login', function (req, res) {
  var tokenUrl = 'http://foo.com';
  var body = '';
  http.get(tokenUrl, function (tokenRes) {
    tokenRes.on('data', function (chunk) {
      body += chunk;
    }).on('end', function () {
      res.end(body);
    });
  }).on('error', function (err) {
    console.log('Error fetching site: ' + err.message);
  });
}

2 个答案:

答案 0 :(得分:0)

所以我遇到了同样的问题但是调用了https.get()。从https.get()切换到https.request()为我解决了这个问题。鉴于http.get()在本地工作正常,这似乎有点疯狂。我很害怕知道这里发生了什么:(

答案 1 :(得分:0)

是的我也遇到过这个问题。 @Steven lckman的回答对我不起作用。


嘿,@ Alec Siu,我已经解决了这个问题。 Azure建议使用请求模块发出http请求。见here。但没有给出理由。无论如何,它运作良好。