在开发 Express.js 应用时,有时会遇到 “端口已被占用” 的问题,这时应用无法启动。本文将介绍如何解决这个问题。
问题分析
出现 “端口已被占用” 的原因是我们在开发过程中,多个应用程序会同时占用同一个端口,导致端口被占用。一般来说,这种情况并不常见,主要是在我们在快速开发时,可能会在启动一个应用程序之前忘记关闭前一个应用程序。
解决方案
方案一:查找占用端口的应用程序
当出现 “端口已被占用” 的问题时,最简单的方式是找出占用该端口的程序进程并杀死进程。打开命令行终端,输入以下命令:
$ netstat -ano | findstr :端口
其中 “端口” 是出现占用的端口,例如:3000。如果该端口已经被占用,则会出现如下所示的文本:
TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 11804
通过该命令可以找到进程 ID(PID)为 11804。进一步使用以下命令可以杀死该进程:
$ taskkill /pid 11804 /f
方案二:修改端口号
除了查找占用端口的程序进程,我们还可以通过修改端口号的方式解决问题。在 Express.js 中,修改端口号非常简单,只需要在应用程序中添加以下代码:
const port = process.env.PORT || 3000 app.listen(port, () => { console.log(`Server started on port ${port}...`) })
这段代码可以自动查找系统中空闲的端口,如果已经被占用,则自动使用另一个端口。
总结
在本文中,我们讨论了如何解决 Express.js 中出现的 “端口已被占用” 的问题。我们介绍了两种解决方案:查找占用端口的应用程序或者修改端口号。这些方法可以帮助我们在开发过程中更好地管理端口占用,避免出现问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fbb76bf6b2d6eab31ec93a