我在 运行 简单节点服务器上获取 `getAddrInfo ENOTFOUND localhost`,即使 /etc/hosts 中存在本地主机(MacOS El Capitan)
I am getting `getAddrInfo ENOTFOUND localhost` on running simple node server even though localhost is present in /etc/hosts (MacOS El Capitan)
我在设置和 运行 一个普通的节点 js 服务器时发生了一件非常奇怪的事情。
当我 运行 node server.js
时,出现以下错误:
Server running at http://localhost:1337/
events.js:160
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
当我在浏览器中打开 http://localhost:1337/
时,显示 page does not exist
。
当我 运行 sudo node server.js
时,它 运行 没有任何错误,我可以访问我的网站 https://localhost:1337
这是我的 /etc/hosts 文件:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
我的server.js:
// Require what we need
var http = require("http");
// Build the server
var app = http.createServer(function(request, response {
response.writeHead(200, {
"Content-Type": "text/plain"
});
response.end("Hello world!\n");
});
// Start that server, baby
app.listen(1337, "localhost");
console.log("Server running at http://localhost:1337/");
其他详情
- OS: Mac OS (埃尔卡皮坦)
- Node JS 版本:6.10.3(全局安装)
- NPM 版本:4.5.0(全局安装)
以下是我的问题
- 为什么上面的 server.js 文件可以使用管理员访问权限但不能作为普通用户使用?
- 全局安装的节点是否仅适用于管理员访问权限?
- Mac OS 中除了 /etc/hosts 之外还有什么可以影响 DNS 查找的吗?我已经刷新了我的 DNS 缓存并重新启动了我的 OS 以确保没有使用旧的 DNS 查找。
我已通过编辑文件 /etc/hosts
修复了同样的错误
添加了行:
##
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
我在设置和 运行 一个普通的节点 js 服务器时发生了一件非常奇怪的事情。
当我 运行 node server.js
时,出现以下错误:
Server running at http://localhost:1337/
events.js:160
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
当我在浏览器中打开 http://localhost:1337/
时,显示 page does not exist
。
当我 运行 sudo node server.js
时,它 运行 没有任何错误,我可以访问我的网站 https://localhost:1337
这是我的 /etc/hosts 文件:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
我的server.js:
// Require what we need
var http = require("http");
// Build the server
var app = http.createServer(function(request, response {
response.writeHead(200, {
"Content-Type": "text/plain"
});
response.end("Hello world!\n");
});
// Start that server, baby
app.listen(1337, "localhost");
console.log("Server running at http://localhost:1337/");
其他详情
- OS: Mac OS (埃尔卡皮坦)
- Node JS 版本:6.10.3(全局安装)
- NPM 版本:4.5.0(全局安装)
以下是我的问题
- 为什么上面的 server.js 文件可以使用管理员访问权限但不能作为普通用户使用?
- 全局安装的节点是否仅适用于管理员访问权限?
- Mac OS 中除了 /etc/hosts 之外还有什么可以影响 DNS 查找的吗?我已经刷新了我的 DNS 缓存并重新启动了我的 OS 以确保没有使用旧的 DNS 查找。
我已通过编辑文件 /etc/hosts
添加了行:
##
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost