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
浙公网安备 33010602011771号