node 使用net模块时Error: getaddrinfo ENOTFOUND localhost

发布于 2022-09-12 01:59:42 字数 1722 浏览 19 评论 0

mac 10.15.3 ,nodev13.6.0,运行net模块时报错
server.js文件

//server.js
var net = require('net');
var server = net.createServer(function(connection) { 
   console.log('client connected');
   connection.on('end', function() {
      console.log('客户端关闭连接');
   });
   connection.write('Hello World!\r\n');
   connection.pipe(connection);
});
server.listen(8080, function() { 
  console.log('server is listening');
});

执行以上服务端代码:

$ node server.js
server is listening   # 服务已创建并监听 8080 端口
// client.js
var net = require('net');
var client = net.connect({port: 8080}, function() {
   console.log('连接到服务器!');  
});
client.on('data', function(data) {
   console.log(data.toString());
   client.end();
});
client.on('end', function() { 
   console.log('断开与服务器的连接');
});

执行以上客户端的代码时报如下错误

$ node client.js       
events.js:298
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND localhost
    at GetAddrInfoReqWrap.onlookup \[as oncomplete\] (dns.js:64:26)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (internal/streams/destroy.js:84:8)
    at processTicksAndRejections (internal/process/task\_queues.js:84:21) {
  errno: -3008,
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'localhost'
}  

没有搜到答案,本地hosts文件配置了localhost 映射

$ sudo cat /etc/hosts  
127.0.0.1               localhost
255.255.255.255 broadcasthost
::1                             localhost
fe80::1%lo0             localhost

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

娇柔作态 2022-09-19 01:59:42

文件类型显示Unix可执行文件
删除hosts文件,重新添加即可
参考

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文