I train myslef with NodeJS and tried a simple GET call. Here is my code:
var http = require('http');
var options = { host: ' path: '/xmlapi/boardgame/1?stats=1', method: 'GET'
}
var request = http.request(options, function (response) { var str = "" response.on('data', function (data) { str += data; }); response.on('end', function () { console.log(str); });
});
request.on('error', function (e) { console.log('Problem with request: ' + e.message);
});
request.end();The URL called seems to work in my browser
Anyway, I've got Problem with request: connect ETIMEDOUT when I run the code and I have no idea how to fix it.
What could cause this error ? Is it my code or is it a network/proxy issue?
28 Answers
When behind a proxy you need to make the following modifications (as explained in this answer):
- put the proxy host in the
hostparameter - put the proxy port in the
portparameter - put the full destination URL in the
pathparameter :
Which gives:
var options = { host: '<PROXY_HOST>', port: '<PROXY_PORT>', path: ' method: 'GET', headers: { Host: ' }
} 3 In my case it was because of http but not https as required
The following change with the request worked for me:
var options = { proxy:'PROXY URL', uri: 'API URL', method: 'GET' } request(options, function (err, response, body) { if(err){ console.log('error:', err); } else { console.log('body:', body); } }); In my case it was a misconfigured subnet. Only one of the 2 subnets in the ELB worked. But my client kept trying to connect to the misconfigured one.
if you have URL like :
URL: 'localhost:3030/integration', The URL above cause some issues because HTTP does not exist at the beginning of URL so Just change it to it should work.
URL: ' If this error occurs while using POSTMAN.
So, when you call a request in Postman and the API requires your VPN to be up before you can make a successful call. You will need to connect or reconnect your VPN.
In my case, I was working on a company's laptop. I found out it was the VPN that was down.
I was facing this issue on Ubuntu Server while maintaining a node instance on PM2. Basically after restarting the instance after taking the pull I was getting the same error on initial connection of mySQL inside the code.
Error: connect ETIMEDOUT
at Connection._handleConnectTimeout (/home/deam_server/node_modules/mysql/lib/Connection.js:419:13)
at Object.onceWrapper (events.js:275:13)
at Socket.emit (events.js:182:13)
at Socket.EventEmitter.emit (domain.js:442:20)
at Socket._onTimeout (net.js:447:8)
at ontimeout (timers.js:427:11)
at tryOnTimeout (timers.js:289:5)
at listOnTimeout (timers.js:252:5)
at Timer.processTimers (timers.js:212:10)Though the same code was running perfectly on my local machine. After that I used "df" command which helped me to realise that my root directory was 100% occupied. I allotted some memory to the root directory and the restarted the node instance and then it started working fine.
In my case, I was getting this error because the body of my post api was very large.