我遇到了一个非常棘手的情况,这是故事:
使用请求模块的代码将始终抛出[Error: socket hang up] code: 'ECONNRESET'
,相反,使用http / urllib模块就可以了〜
注意:我试图将Node版本从0.12.x切换到5.x,甚至重新启动我的机器,但没有运气,结果相同。
const http = require('http');
const co = require('co');
const Q = require('q');
const request = require('request');
const urllib = require('urllib');
// const coRequest = require('co-request');
const URL = 'http://www.google.com';
co(function*() {
try {
http.get(URL, (res) => {
console.log('res statusCode', res.statusCode);
});
} catch(err) {
console.error('thrown from http', err);
}
try {
yield Q.nfcall(request, URL);
} catch(err) {
console.error('thrown from request', err);
}
try {
const res = yield Q.ninvoke(urllib, 'request', URL);
console.log(res[1].statusCode);
} catch(err) {
console.error('thrown from urllib', err);
}
}).catch(err => {
console.error('error', err);
})
截图:
有什么想法吗?
我应该做一些清理,就像一个损坏的套接字文件描述符?