ENOTFOUNDEAI_NODATA(DNS 查找失?。罕硎?或的DNS 失敗 EAI_NONAME。這不是標準 POSIX 錯誤。
ENOTFOUND當由于 DNS 錯誤而無法與某些主機建立連接時,Node.js 中就會出現(xiàn)異常。這通常是由于host值不正確或未localhost正確映射到 127.0.0.1. 當域出現(xiàn)故障或不再存在時,也可能會發(fā)生這種情況。以下是 Node.js 控制臺中經(jīng)常出現(xiàn)該錯誤的示例:
Error: getaddrinfo ENOTFOUND http://localhost at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'http://localhost' }
如何解決錯誤Error: getaddrinfo ENOTFOUND
如果您在 Node.js 應用程序中或運行腳本時遇到此錯誤,您可以嘗試以下策略來修復它:
檢查域名
首先,確保您在輸入域名時沒有輸入錯誤。您還可以使用 DNS 檢查器(https://dnschecker.org/) 等工具來確認域在您所在的位置或區(qū)域中成功解析。
檢查主機值
如果您使用標準庫中的http.request()或https.request()方法,請確保host選項對象中的值僅包含服務器的域名或 IP 地址。它不應包含協(xié)議、端口或請求路徑(分別使用protocol、port和path屬性作為這些值)。
// 不要這樣做 const options = { host: 'http://example.com/path/to/resource', }; // 應該這樣做 const options = { host: 'example.com', path: '/path/to/resource', }; http.request(options, (res) => {});
檢查您的本地主機映射
如果您嘗試連接到localhost,并且ENOTFOUND拋出錯誤,則可能意味著localhost您的主機文件中缺少 。
在 Linux 和 macOS 上,確保您的/etc/hosts文件包含以下條目:
# /etc/hosts 127.0.0.1 localhost
之后您可能需要刷新 DNS 緩存:文章來源:http://www.zghlxwxcb.cn/article/464.html
sudo killall -HUP mDNSResponder # macOS
在 Linux 上,清除 DNS 緩存取決于所使用的分發(fā)和緩存服務。因此,請研究在您的系統(tǒng)上運行的適當命令。文章來源地址http://www.zghlxwxcb.cn/article/464.html
到此這篇關于如何解決nodejs報錯:Error: getaddrinfo ENOTFOUND http://的文章就介紹到這了,更多相關內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!