Vue启动服务报错: Error: listen EACCES: permission denied 0.0.0.0:3000

现象

当vscode终端中(使用的git bash)输入yarn server启动项目服务后,出现报错信息如下: Error: listen EACCES: permission denied 0.0.0.0:3000

[nodemon] starting `node server/app.js`
events.js:377
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 0.0.0.0:3000
    at Server.setupListenHandle [as _listen2] (net.js:1314:21)
    at listenInCluster (net.js:1379:12)
    at Server.listen (net.js:1465:7)
    at Function.listen (D:\New folder\gitlab\node_modules\express\lib\application.js:618:24)
    at Object.<anonymous> (D:\New folder\gitlab\server\app.js:30:5)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1358:8)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EACCES',
  errno: -4092,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 3000
}
[nodemon] app crashed - waiting for file changes before starting...

原因

  • 相应端口被占用
  • git Bash中使用Ctrl+C停止进程后,nodejs并没有被关闭

解决

两种解决方法: 一是更改项目后台服务的端口;第二是找到3000端口,kill占据端口的程序.
还有一种是第一种是直接更改配置.

latest method

链接: https://github.com/BrowserSync/browser-sync/issues/1668
操作:
1.管理员打开powershell,按如下步骤操作.
2. 关闭winnat,输入 "net stop winnat"
3. 开启winnat,输入 "net start winnat"

更改项目服务端口

如果使用的express框架的话,一般在server/app.js中的app.listen(3000)位置更改
前几次更改成30xx都失败了,后来改成8xxx才正常运行.

kill占据3000端口的进程

对于Linux/Mac OS (sudo) run,在终端中搜索:

$ lsof -i tcp:3000
$ kill -9 PID

在 Windows 上:

netstat -ano | findstr :3000
tskill typeyourPIDhere 

或者直接打开任务管理器,找到详细信息一栏,找到占据的端口号,右键结束进程.

更改配置

更改nodemon下的配置

const server = require('http').createServer();
const port = process.env.PORT || 3000;

server.listen(port, () => console.log(`Listening on ${port}`));

其他方案1

For windowns:

 1. Go to the task manager
 2. Then look for Node.js: Server-side JavaScript
 3. Then right click on it and End task from the processes. 

其他方案2

关于git bash的3种方案

  • 1.更换命令行终端为自带的cmd
  • 2.gitbash使用Ctrl+C停止后,在任务管理器中停止nodejs进程
  • 3.使用旧版本git

资料链接

posted @ 2022-05-27 11:02  nullsh  阅读(5465)  评论(0)    收藏  举报