我在这里经历了很多答案,但没有一个可以解决我的错误。这是我到目前为止尝试过的。
环境:
win 10 pro v2004 build 19041.29
node v12.14.1
使用了netstat -a -b
来查看该端口是否被其他进程使用。
没有进程正在使用该端口,也尝试将端口切换到3000
并得到相同的错误。
我使用docker-desktop和wsl2,因此也逐一禁用了所有虚拟网络适配器。在杀死所有其他docker服务后进行了尝试。
重新启动我的电脑。
尝试运行npm start
以管理员身份投放Powershell
Server.js
const app = require('./src/app');
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Litening on port ${port}...`);
});
错误:
events.js:200
throw er; // Unhandled 'error' event
^
Error: listen EACCES: permission denied 0.0.0.0:3001
at Server.setupListenHandle [as _listen2] (net.js:1289:21)
at listenInCluster (net.js:1354:12)
at Server.listen (net.js:1442:7)
at Function.listen (C:\Users\sujeet\project\node_modules\express\lib\application.js:618:24)
at Object.<anonymous> (C:\Users\sujee\CustomerAPIs\server.js:4:5)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
at internal/main/run_main_module.js:17:11
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1333:8)
at processTicksAndRejections (internal/process/task_queues.js:81:21) {
code: 'EACCES',
errno: 'EACCES',
syscall: 'listen',
address: '0.0.0.0',
port: 3001
}
答案 0 :(得分:0)
该端口可能正在被其他程序使用。尝试以管理员身份运行termianl,然后尝试重新启动系统。如果问题仍然存在,请找到一种方法来终止在端口上运行的进程。
答案 1 :(得分:0)
Windows似乎将其更改为默认动态端口范围。
您可以使用此命令检查动态端口范围
netsh int ipv4 show dynamicport tcp
如果您要使用的端口在该范围内,则可以使用此命令进行更改
netsh int ipv4 set dynamic tcp start=10000 num=10000
您可以更改起始端口号和所需的端口号。
别忘了更改后重新启动计算机。