我正在Mac上运行一个简单的node js服务器。我也安装了扫帚。仅供参考。我可以转到localhost:8888并预览网页。但是,在我的server.js文件中,如果我将主机作为这样的server.listen函数的参数包括在内
server.listen(127.0.0.1, 8888, function(){
console.log('Server running');
})
我的终端出现以下错误。
Error: listen EADDRINUSE 127.0.0.1
at Object._errnoException (util.js:992:11)
at _exceptionWithHostPort (util.js:1014:20)
at Server.setupListenHandle [as _listen2] (net.js:1338:19)
at listenInCluster (net.js:1396:12)
at Server.listen (net.js:1491:5)
at Object.<anonymous> (/Users/username/Desktop/nodeServer/server.js:12:8)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
Users-Mac-Pro:nodeServer user$
如果我只有
server.listen(8888, function(){
console.log('Server running');
})
一切正常。这与我安装了Mamp的事实有什么关系吗?只想了解为什么一个有效而另一个无效。
答案 0 :(得分:2)
尝试将主机放在端口后,如下所示
server.listen(8888, '127.0.0.1', function() {
console.log('Server running');
})
app.listen([port[, host[, backlog]]][, callback])
答案 1 :(得分:0)
某些其他进程可能一直在使用8888端口。您可以终止该进程,也可以将其他端口用于Node.js服务器。
要使用端口8888获取进程的进程ID,请使用
lsof -i tcp:8888
并使用
终止进程 kill -9 <pid>
希望这会有所帮助。
答案 2 :(得分:0)
当前您可能正在该端口上运行服务器。尝试:
killall node