nodejs httprequest with data - getting error getaddrinfo ENOENT

后端 未结 8 1608
天命终不由人
天命终不由人 2020-12-02 22:47

Update - Answered by self

I see one has to make sure that the DNS is resolved properly from the machine, check out the node documentation to make sure that domain

相关标签:
8条回答
  • 2020-12-02 23:14

    Avoid all of these hostname/protocol/port/slash problems by using the request module instead of http

    https://github.com/mikeal/request

    0 讨论(0)
  • 2020-12-02 23:14

    I hit this again today for a silly mistake. This was because port number was put as part of the hostname.

    // wrong. gets error getaddrinfo ENOENT
    var options = {
      hostName: 'localhost:1337',
      ....
    }
    
    // correct
    var options = {
        hostname: 'localhost',
        port: 1337,
    };
    
    0 讨论(0)
  • 2020-12-02 23:15

    If all your code seems to be alright and you're still get the same error, which was my case, the solution was checking the nameservers on my /etc/resolv.conf file.

    I added Google's nameserver at the beginning of my resolv.conf file (8.8.8.8) and the code started working just fine once again, no more error.

    It's worth noticing that this error started happening on me on Feb. 4th 2015 after I ran an sudo apt-get upgrade, my node js must have been updated and a bug introduced which seemed to be incompatible with the nameservers I had.

    At first I checked if I was having any DNS issues by fetching the URL I needed using wget on the command line, I got the contents of the target url fine so I didn't think it was actually a DNS issue, but it was.

    0 讨论(0)
  • 2020-12-02 23:17

    I was getting this error when calling server.listen(PORT, HOST); where HOST could not be resolved back to the local machine.

    Once I changed this back to a hostname/domain name/ip that the local machine resolved to, this error went away.

    Since I was trying to connect via a hostname for dev purposes I added an entry to my hosts file with the desired hostname and ensured that this matched the hostname passed to server.listen()

    0 讨论(0)
  • 2020-12-02 23:22

    I had a similar issue but running as a AWS Lambda function, so in case someone is having this issue with Lambda functions this is how I got it resolved.

    • Give your Lambda function a VPC.
    • Select at least 2 Subnets.
    • And select a Security Group.

    I spent a day until I found this fix, hope it helps someone else.

    0 讨论(0)
  • 2020-12-02 23:25

    I was getting [Error: Getaddrinfo ENOENT], but it was right after getting [Error: connect EMFILE]; since I am doing load tests with thousands of clients the EMFILE error (the root cause) was being opaqued. The solution was the same as for EMFILE: increase the number of file descriptors. Just adding it here for completeness in case anyone else has the same problem.

    0 讨论(0)
提交回复
热议问题