为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复错误:在使用NodeJS时侦听EADDRINUSE?

如何修复错误:在使用NodeJS时侦听EADDRINUSE?

慕容3067478 2019-06-29 15:02:36
如何修复错误:在使用NodeJS时侦听EADDRINUSE?如果我运行一个端口为80的服务器,并且尝试使用XMLHttpRequest我知道这个错误:Error: listen EADDRINUSE当我在端口80上运行服务器时,如果我想执行一个请求,为什么NodeJS会出现问题呢?对于浏览器来说,这不是一个问题:我可以在互联网上冲浪,而服务器正在运行。服务器是:  net.createServer(function (socket) {     socket.name = socket.remoteAddress + ":" + socket.remotePort;     console.log('connection request from: ' + socket.remoteAddress);     socket.destroy();   }).listen(options.port);以及请求:var xhr = new XMLHttpRequest();xhr.onreadystatechange = function() {     sys.puts("State: " + this.readyState);     if (this.readyState == 4) {         sys.puts("Complete.\nBody length: " + this.responseText.length);         sys.puts("Body:\n" + this.responseText);     }};xhr.open("GET", "http://mywebsite.com");xhr.send();
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

EADDRINUSE意味着端口号listen()尝试将服务器绑定到已在使用的服务器。

因此,在您的示例中,必须已经在端口80上运行了服务器。

如果在此端口上运行了另一个Web服务器,则必须将node.js放在该服务器的后面,并通过该服务器对其进行代理。

你应该检查一下listening事件,以查看服务器是否真的在监听:

var http=require('http');var server=http.createServer(function(req,res){
    res.end('test');});server.on('listening',function(){
    console.log('ok, server is running');});server.listen(80);


查看完整回答
反对 回复 2019-06-29
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

真正帮助我的是:

killall -9 node

但这会扼杀一个系统进程。

带着

ps ax

你可以检查它是否有效。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 659 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信