【问题标题】:Error: listen EADDRINUSE in nodejs错误:在 nodejs 中监听 EADDRINUSE
【发布时间】:2016-07-12 01:07:42
【问题描述】:

我使用 that 在 sublime 中创建了 javascript 构建系统

然后我使用该代码运行服务器

var server = require('http');

function engine(request, response){
    response.writeHead(200,  {'Content-Type': 'text/plain'});
    response.end("Hello");
}

server.createServer(engine).listen(3000);

但是当我进行更改时,例如将 Hello 更改为 Hello World 并刷新浏览器并没有任何意义,当我尝试重新运行 (f7) 时它会引发异常

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3000
    at Object.exports._errnoException (util.js:870:11)
    at exports._exceptionWithHostPort (util.js:893:20)
    at Server._listen2 (net.js:1231:14)
    at listen (net.js:1267:10)
    at Server.listen (net.js:1363:5)
    at Object.<anonymous> (C:\Users\gsiradze\Desktop\nodejs\script1.js:4:8)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
[Finished in 0.1s]

我知道这是因为 3000 端口正在使用,但我怎样才能停止该端口然后运行新代码?

我是 node.js 的新手,请随时提出任何建议

【问题讨论】:

  • @BenFortune 你还没有阅读我的问题..
  • 我确实做到了。阅读欺骗中的答案。
  • @BenFortune 阅读和?我也可以google。已经找到并尝试过。它抛出同样的错误
  • 并停止对我得到的所有答案投反对票!

标签: javascript node.js


【解决方案1】:

如何运行 nodejs 实现?

您可以尝试使用包nodemon

npm install -g nodemon

现在您可以通过在目录中键入 nodemon 来启动您的节点应用程序。 如果您现在更改并保存文件,服务器将自动重新启动您的服务器。

如果不想使用nodemon,可以ctrl+c关闭服务器

【讨论】:

  • 我没有使用 cmd 运行它。这是崇高的 js 构建系统
  • @George 我想你会找到答案的here
【解决方案2】:

server.createServer(engine).listen(3000);

这就是你说的端口所在的位置,你可以将端口更改为任何其他端口。

要重新运行您的代码,我认为您使用控制台可以按 ctrl+C 停止进程并使用节点 nameOfYoursServerFile.js 再次运行它

【讨论】:

  • 我没有使用 cmd 运行它。这是崇高的 js 构建系统
  • 那么问题可能出在js构建系统我不熟悉它是如何工作的,你能尝试使用任何类型的控制台吗? cmd、终端、git bash 或节点控制台都可以解决问题
【解决方案3】:

使用lsof -w -n -i tcp:3000 查找您在 3000 上的进程的 PID 然后,用第一个命令返回的 PID 将kill -9 PID 切换到PID 杀死它。

【讨论】:

  • 所以在你的问题中指定。
【解决方案4】:
You need to get the PID of node service
You can do that by running this command on your terminal
    ps aux | grep node
it will give you  id of running node process
and the you can use 
    kill -9 <id of node process>
to stop node process and then try again to run your node server 

【讨论】:

    【解决方案5】:

    Ctrl+C 前台进程或使用 pidof node 找到正在运行的进程的 ID,然后将其杀死 (kill pid)。即使您使用forever 运行或以其他方式在后台运行,这也可以。

    【讨论】:

    • 如何找到 pidof 节点?我在窗户上
    • 在 Windows 上你可以使用tasklist | find "node"。
    猜你喜欢
    • 2014-01-17
    • 2018-12-24
    • 1970-01-01
    • 2013-01-16
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多