Error: listen EADDRNOTAVAIL
单词解析
这个异常名字“EADDRNOTAVAIL”并不是一个单词,将其分解开来就是“E ADDR NOT AVAIL”,含义如下:
E:Error
ADDR:Address
NOT:Not
AVAIL:Available
合起来的意思就是这个ip地址是not available的,读者如果遇到这样子的错误就去看看自己的ip地址对不对。
问题原因
http.createServer().listen(port,hostname)中的hostname代表本机的域名或者ip
官网的API上说到
server.listen(port, [hostname], [backlog], [callback])#
Begin accepting connections on the specified port and hostname. If the hostname is omitted,
the server will accept connections directed to any IPv4 address (INADDR_ANY).
可用 host 或 ip 配置
配置不同host可访问路径区别
host | 可访问路径 | 说明 |
localhost |
localhost 127.0.0.1 |
localhost是在host文件中默认与127.0.0.1映射,代表本地因此两者之间可以互相访问 |
127.0.0.1 |
localhost 127.0.0.1 |
不联网 网卡传输,受防火墙和网卡限制 本机访问 |
0.0.0.0 |
localhost 127.0.0.1 本机IP(如192.168.x.x) |
0.0.0.0我们平时很少用到,可以通过主机的多个 ip 地址访问我的服务 我们也可以发现一件很有趣的事情:其他三种路径都可以访问,唯独使用0.0.0.0却访问不了 这是一个保留地址,具体原理暂不深究,但这种方式能让其他的默认地址都访问 |
解决
修改webpack host字段配置如下可解决问题