Node.js从节点服务器连接到远程服务器

Node.js从节点服务器连接到远程服务器,node.js,Node.js,我有一个小小的Node.js应用程序,我想通过远程API获取一些日期,比如twitter、微软的翻译服务、天气。从中,我尝试将示例代码放入我的节点服务器应用程序中: var options = { host: 'www.google.com', port: 80, path: '/index.html' }; http.get(options, function(res) { console.log("Got response: " + res.statusCode); }).

我有一个小小的Node.js应用程序,我想通过远程API获取一些日期,比如twitter、微软的翻译服务、天气。从中,我尝试将示例代码放入我的节点服务器应用程序中:

var options = {
  host: 'www.google.com',
  port: 80,
  path: '/index.html'
};

http.get(options, function(res) {
  console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
  console.log("Got error: " + e.message);
});
我用文档中的google URL、twitter API URL和其他几个URL进行了尝试,但我能得到的唯一响应是:

Got error: connect ECONNREFUSED
与wget使用相同的url会带来满足感,因此我知道url是有效的。要从我的应用服务器成功连接到远程服务,我需要更改什么

或 关于如何调试这个的一些帮助会更好。那么,我似乎只能从失败中获得信息。我尝试使用socket.io将错误响应转发到内部浏览器。在“error”上,函数{…},以便使用webkit检查它。遗憾的是,错误对象仅包含:

Object
    error: Object
        code: "ECONNREFUSED"
        errno: "ECONNREFUSED"
        syscall: "connect"
    __proto__: Object
__proto__: Object
这对判断出什么地方出了问题没有帮助

作为参考,我的整个app.js是:

Me:您是否确保您通过为internet连接设置的代理发送请求

我:没有

我:那样做

我:好的,现在可以了

Me:您是否确保您通过为internet连接设置的代理发送请求

我:没有

我:那样做

我:好的,现在可以了


您正在使用哪个版本的节点?您是否尝试过在express应用程序之外单独运行该请求?Fedora 15上的版本为0.6.11。我没有在express之外尝试过。在OSX上运行0.6.6上的所有代码,减去你的“路由”内容,我得到了回复:200。感谢你表明,至少我的代码/设置有问题,而不是节点有问题!您正在使用哪个版本的节点?您是否尝试过在express应用程序之外单独运行该请求?Fedora 15上的版本为0.6.11。我没有在express之外尝试过。在OSX上运行0.6.6上的所有代码,减去你的“路由”内容,我得到了回复:200。感谢你表明,至少我的代码/设置有问题,而不是节点有问题!如果有人能就获得更好的调试信息给出好的建议,请参阅问题中的或部分,我将为他们提供正确答案的分数。如果有人能就获得更好的调试信息给出好的建议,请参阅问题中的或部分,我将为他们提供正确答案的分数。
var express = require('express') , http = require('http') , routes = require('./routes');

var app = module.exports = express.createServer();
var io = require('socket.io').listen(app)

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'ejs');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

app.get('/', function(req, res){
  routes.index(req, res);
  console.log(req.query);

  var options = {
    host: 'www.google.com',
    port: 80,
    path: '/index.html'
  };

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

app.listen(4000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
  var options = {
    host: '<proxyip>',
    port: <proxyport>,
    path: 'http://www.google.com/index.html'
  };

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