当前位置: 首页 > 知识库问答 >
问题:

端口 3000 已在使用中 [nodemon] 应用程序崩溃 - 等待文件更改后再开始 [关闭]

闽鸿宝
2023-03-14

这个问题似乎不是关于一个特定的编程问题,一个软件算法,或者主要由程序员使用的软件工具。如果你认为这个问题是另一个Stack Exchange站点的主题,你可以留下评论来解释这个问题在哪里可以得到回答。

端口3000已被使用[nodemon]应用程序崩溃-在启动之前等待文件更改...所以请帮我解决这个问题

共有3个答案

钱锦
2023-03-14

解决此问题的最佳方法是使用以下命令直接杀死端口。

fuser -n tcp -k 3000
庾鸿飞
2023-03-14

首先,让我们看看如何终止端口打开的进程。

使用lsof命令,我们可以检索具有给定端口的PID:

$ lsof -i :3000 -t
12345

然后,我们可以通过执行以下操作来终止该流程:

$ kill 12345

让我们把它变成一行程序:

lsof -i :3000 -t | xargs kill

如果您使用环境变量来设置服务器端口,我们可以指定它而不是硬编码我们的值:

lsof -i :${PORT} -t | xargs kill

最后,如果没有设置环境变量,我们可以默认使用端口3000:

lsof -i :${PORT:-3000} -t | xargs kill

除非您在Linux的Windows子系统(WSL)上运行nodemon,否则< code>lsof在Windows中不可用。但是,在Windows shell上可以使用< code>netstat:

netstat -ano | findstr :3000

这将返回正在使用端口3000的进程的PID,我们可以使用该端口使用tskill命令终止进程:

tskill 12345

如果您所关心的只是确保拥有该端口的进程已经死亡,并且没有任何正常关闭,那么您可以忽略下面的警告。

如果您的应用程序侦听< code>SIGTERM以在nodemon触发< code>tskill命令时正常关闭,Windows将在您的应用程序有机会触发< code > process . on(' SIGTERM ')事件处理程序之前无条件终止您的进程。

有关此警告的详细信息,请参阅:

  • 节点.js

有时由于某些原因,tskill命令无法运行。在从上面的netstat命令中找到PID后,还可以使用以下命令终止进程

taskkill /F /T /PID 12345

Nodemon允许您通过< code>nodemon.json配置文件设置事件挂钩:

{
  "events": {
    "crash": "sh -c 'lsof -i :${PORT:-3000} -t | xargs kill'"
  }
}

这将导致nodemon在您的应用程序崩溃时执行< code > sh-c ' lsof-I:$ { PORT:-3000 }-t | xargs kill 命令,从而终止它所产生的保持端口打开的子进程。

有关节点程序事件的更多信息,请查看其文档:

万俟铭
2023-03-14

借用我对这个问题的回答:

> < li>

将< code>kill-port节点包作为开发依赖项安装:

npm install kill-port --save-dev

在项目的根目录中创建一个节点蒙.json 文件,其中包含:

{
  "events": {
    "restart": "kill-port 3000",
    "crash": "kill-port 3000"
  },
  "delay": "1500"
}

然后,在包中。json文件,如下所示:

"scripts": {
    "start-dev": "nodemon app.js",
}

然后在开发模式下启动您的应用程序:

npm run start-dev
 类似资料:
  • 正在创建节点。与mongodb的js连接。 MongoDb连接错误 未获取应用程序正在运行8000并显示“nodemon应用程序在启动前等待文件更改时崩溃” 错误原因: TypeError:无法分配到只读属性'map'的对象'#'在对象。(/用户/praneypareek/桌面/MERN工作项目/项目后端/node_modules/猫鼬/lib/cursor/QueryCursor.js:150:

  • 我的应用程序的目的是通过一个自定义对话框从一个评级栏中检索一个值(5分),并将其显示在主activity的一个TextView中。当我点击我在下图中用红色勾勒出来的按钮时,应用程序崩溃并关闭。 该应用程序由2个类/活动组成。主activity和自定义对话框activity。 这两个文件的代码可以在下面找到: mainactivity.java: mealRaterDialog.java: 我是An

  • 问题内容: 我正在尝试创建一个简单的手电筒应用程序,以学习android开发。我正在尝试获取它,以便当您单击灯光ImageView对象时,它会更改图像。但是现在,当调试器进入light.setImageResource()时,它崩溃。 它抛出的错误是 问题答案: 崩溃: 正如您的堆栈跟踪所说:“ java.lang。OutOfMemoryError : 未能分配51840012字节分配,其中包含4

  • 经过一些调试,我找到了这行代码 导致我的应用程序崩溃,我已经尝试过了 ; 但结果还是一样,有什么帮助吗??

  • 我正在Eclipse中创建一个应用程序,现在我想在我的项目中使用appcompat库。我已经成功地导入了这个库,当我用AppCompatActivity扩展一些活动时,它工作得很好。问题是,当我运行应用程序时,我的应用程序启动由AppCompActivty扩展的活动。应用程序崩溃。Log Cat正在显示NoClassDefFoundError:请为我指引正确的方向。谢谢

  • 在将DexGuard从7.0.12更新到7.1.22之后,我遇到了Enum交换机崩溃。 只有当DexGuard在我们的项目上运行时才会发生这种情况(我想这是由ProGuard问题引起的)。 如果使用硬编码值,则不会发生崩溃。 当然,我希望避免使用硬编码值。 发生的崩溃如下 这发生在说明的行上(见下文) 应用程序崩溃的一些示例代码(鉴于MyEnum当然是Enum): 假设为1。 如果我改变到它的工作