CodeSandbox中Express服务启动报错errno -13(EACCES)求助
解决EACCES端口权限错误(errno -13)的步骤
核心问题分析
- 你代码里监听的1000端口属于系统保留端口范围(通常0-1023的端口需要root权限才能绑定),在线IDE CodeSandbox不会提供root权限,所以触发EACCES权限拒绝错误。
- 控制台显示8000是CodeSandbox的自动端口映射机制,实际冲突的是你代码里设置的1000端口,查杀8080端口完全不相关,所以没用。
具体解决方案
1. 修改代码监听非系统保留端口
把index.js里的监听端口改成1024以上的数值,比如3000、5000这类常用开发端口:
// 替换原来的app.listen(1000) app.listen(3000, () => { console.log('Server running on port 3000'); });
CodeSandbox会自动将这个端口映射到可访问的外部地址,控制台会显示对应的访问链接。
2. 用环境变量动态获取端口(适配在线IDE)
CodeSandbox这类在线平台通常会提供PORT环境变量,优先使用这个变量可以避免端口冲突:
const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); });
这样平台会自动分配可用端口,无需手动指定。
3. 重启项目环境清理残留进程
如果之前的错误进程残留,直接用CodeSandbox右上角的重启按钮重启整个项目环境,比用kill-port工具更可靠,nodemon也会自动重启修改后的代码。
内容的提问来源于stack exchange,提问作者Yash
相关产品推荐
相关产品推荐

