2017-05-16 17 views
5

Tôi có một bot Node.js đơn giản làm cho một yêu cầu HTTP mỗi giây đến một API còn lại.Lỗi: getaddrinfo ENOTFOUND

Nếu dữ liệu được trả về là đúng thì tôi sẽ tạo URL nơi tôi đăng bài HTTP.

Mọi thứ hoạt động ổn nhưng sau ~ 4-5hrs của chạy Tôi đã nhận lỗi này

0|server | error: Error: getaddrinfo ENOTFOUND www.rest-api.com www.rest-api.com:443 
0|server |  at errnoException (dns.js:28:10) 
0|server |  at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:73:26) 

Ai đó có thể giải thích cho tôi tại sao điều này đã xảy ra?

Sau khi tôi khởi động lại máy chủ, mọi thứ đều hoạt động.

Tôi đang sử dụng axios để thực hiện yêu cầu http.

+0

Bao lâu bạn gửi yêu cầu đến máy chủ? – Dmitry

Trả lời

3

Tôi đã gặp cùng một vấn đề và giải quyết nó!

thử:

sudo vi /etc/hosts

và thêm:

127.0.0.1 localhost

để host

+0

Bạn là người đàn ông. Ty. – Speakeasys

2

Triệu chứng là địa chỉ từ xa không thể giải quyết được.

Nguyên nhân có thể là nhiều thứ. Đầu tiên, hãy thử để xem nếu nó là nút cụ thể bằng cách cố gắng để giải quyết địa chỉ trực tiếp:

$ nslookup www.rest-api.com 

Hoặc:

$ dig www.rest-api.com 

Nếu điều đó không làm việc, bạn đã có một vấn đề kết nối. Nó có thể là bất cứ điều gì. Hãy thử xem thời gian thuê DHCP của bạn kéo dài bao lâu nếu bạn đang sử dụng DHCP.

Tuy nhiên nếu điều đó không hoạt động tốt nhưng ứng dụng nút của bạn vẫn không thành công, bạn có thể gặp phải: https://github.com/nodejs/node/issues/5436, đây là lỗi trong thư viện cơ bản. Bạn có thể triển khai giải pháp thay thế được đề cập trong chuỗi đó, chỉ định họ phiên bản IP thông qua tham số sau { family: 4 } như một phần của các tùy chọn yêu cầu của bạn.

Các vấn đề liên quan