我在使用请求模块时遇到一个一致的问题,无论我提供什么URL,我都会收到套接字挂起错误,通常是连接重置。更奇怪的是,此代码可以在其他开发人员的机器上正常工作。
var request = require("request");
request("http://google.com", function(error, response, body) {
console.log(error);
console.log(response);
if (!error && response.statusCode === 200) {
}
});
这是代码的简化版本,但它说明了这一点。如果我这样做的话
var http = require('http');
var options = {
host: 'www.google.com',
port: 80
};
http.get(options, function (resp) {
var bdy = "";
resp.on('data', function (chunk) {
bdy = bdy + chunk;
});
resp.on('end', function () {
//var r = JSON.parse(bdy);
console.log(bdy);
});
}).on("error", function (e) {
console.log("Got error: " + e.message);
});
我得到了Google的回信,正如我期望的那样。奇怪的是,请求模块和我正在使用的另一个模块(weather-js)都表现出相同的行为:所有请求都导致某种套接字错误。另外,当我运行Fiddler时,可以看到http.get
请求消失了,但是当运行request
或weather-js
模块中的代码时,却看不到任何条目。
我正在Windows 10上运行Node 10.5.0。