node-tunnel
node-tunnel copied to clipboard
bad proxy will raise exception: TypeError: options.request.emit is not a function
When I use an agent created by tunnel with proxy, if the proxy is not reachable, wrong exception raised.
Simple codes:
let a = tunnel.httpOverHttp({proxy: {host: 'nosuch.host.com', port: 8080}});
return got(anurl, {agent: a})
.then( res => {
if (res.statusCode === 200) return res.body;
else throw new Error('http status ' + res.statusCode + ', ' + res.body);
});
exception raised:
TypeError: options.request.emit is not a function
at ClientRequest.onError (/home/xxx/nodejs/proxylib/node_modules/tunnel/lib/tunnel.js:183:21)
at Object.onceWrapper (events.js:300:26)
at ClientRequest.emit (events.js:210:5)
at Socket.socketErrorListener (_http_client.js:406:9)
at Socket.emit (events.js:210:5)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
But EHOSTNOTFOUND or ENETWORK are expected error.
I am getting this as well
I had the same issue, it appeared that I have used the wrong config
Same issue here
if authentication parameters are bad or any proxy parameter is bad, exceptions are thrown.. Is there a way to catch these exceptions and show to the user what went wrong?