What could cause “connect ETIMEDOUT” error when the URL is working in browser?

后端 未结 6 1434
深忆病人
深忆病人 2021-02-19 07:46

I train myslef with NodeJS and tried a simple GET call. Here is my code:

var http = require(\'http\');

var options = {
    host: \'www.boardgamegeek.com\',
             


        
相关标签:
6条回答
  • 2021-02-19 08:07

    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);
          }
       });
    
    0 讨论(0)
  • 2021-02-19 08:12

    When behind a proxy you need to make the following modifications (as explained in this answer):

    • put the proxy host in the host parameter
    • put the proxy port in the port parameter
    • put the full destination URL in the path parameter :

    Which gives:

    var options = {
        host: '<PROXY_HOST>',
        port: '<PROXY_PORT>',
        path: 'http://www.boardgamegeek.com/xmlapi/boardgame/1?stats=1',
        method: 'GET',
        headers: {
            Host: 'www.boardgamegeek.com'
        }
    }
    
    0 讨论(0)
  • 2021-02-19 08:14

    In my case it was because of http but not https as required

    0 讨论(0)
  • 2021-02-19 08:16

    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.

    0 讨论(0)
  • 2021-02-19 08:32

    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.

    0 讨论(0)
  • 2021-02-19 08:32

    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: 'http://localhost:3030/integration', 
      
    
    0 讨论(0)
提交回复
热议问题