用express.js(nodejs)ENOTFOUND错误

每当我尝试使用我的nodejs express服务器redirect到另一个网页(例如google.com)时,它将失败返回以下错误:

throw er; // Unhandled stream error in pipe. ^ Error: getaddrinfo ENOTFOUND google.com at errnoException (dns.js:44:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:94:26) 

我已经尝试了许多不同的解决scheme(例如Node.js getaddrinfo ENOTFOUND )。 甚至没有我在node.js上find的(例如https://nodejs.org/api/http.html#http_http_get_options_callback )网站将无法正常工作。 现在我正在尝试最简单的版本:

 var express = require('express'); var app = express(); var request = require('request'); app.get('/', function(req,res) { var newurl = 'http://google.com/'; request(newurl).pipe(res); }); app.listen(1337); 

或这一个

 var request = require('request'); request('http://www.google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // Show the HTML for the Google homepage. } else { console.log(error, response, body); } }); 

显然,内部networking的限制限制了外部呼叫。

 var request = require('request').defaults({'proxy': 'http://myproxy:1234/'}); 

解决了这个问题