You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js HTTP应用指定端口报错:listen EACCES权限被拒问题咨询

错误原因解析

你的问题出在命令行参数的读取逻辑上:

  • Node.js的process.argv是一个数组,结构固定:
    • 第0项:Node.js可执行文件的路径
    • 第1项:当前执行的脚本文件路径(即你的index.js)
    • 第2项及以后:手动传入的命令行参数

当执行node index.js --port 3000时,process.argv数组实际为:

[ '/path/to/node', '/path/to/index.js', '--port', '3000' ]

你的代码直接取process.argv[2],拿到的是字符串'--port',而非预期的'3000'。

将'--port'传给server.listen()时,Node.js无法将其解析为合法端口号,会自动把端口设为-1,同时错误信息里的address字段显示为'--port',这就触发了EACCES权限错误——因为传入的参数不符合端口要求,Node.js无法正常启动监听。

而执行node index.js 3000时,process.argv[2]正好是'3000',能被正确解析为端口,所以运行正常。

内容的提问来源于stack exchange,提问作者Aryan Soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:50:25