Node.js从节点服务器连接到远程服务器
我有一个小小的Node.js应用程序,我想通过远程API获取一些日期,比如twitter、微软的翻译服务、天气。从中,我尝试将示例代码放入我的节点服务器应用程序中: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); }).
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);
});