【发布时间】:2014-04-21 05:57:29
【问题描述】:
我有一个项目可以在 Windows 上的 WebStorm 中完美运行。在 Mac 上尝试相同操作时,我在尝试使用默认 (443) 端口的 https 时遇到 EACCES 错误
四处玩耍,我注意到跑步
sudo node app.js
效果很好。 不使用 sudo 执行相同操作会引发 EACCES。而且我无法从 WebStorm 运行项目,因为它在没有 sudo 访问权限的情况下运行节点
当然,尝试任何更高的端口(例如 3000)都可以完美运行。但是我工作了一段时间,在这种情况下所有环境都需要 443 端口。
我知道这是具有管理员权限的东西。在我的 IDE 中运行时,有什么方法可以让它工作吗?诸如“始终以管理员身份运行节点”之类的东西?我是 Mac 新手,所以不知道该怎么做。
异常看起来像:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1023:19)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at Object.startServer (/Users/xxxxxx/trunk/server.js:112:21)
at init (/Users/xxxxxx/trunk/app.js:12:12)
at Object.<anonymous> (/Users/xxxxxx/trunk/app.js:15:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
以防万一,启动服务器的代码:
var options = {
key: fs.readFileSync("./server/certificate/xxxxxx.key").toString(),
cert: fs.readFileSync("./server/certificate/xxxxxx.cert").toString()
};
var securedServer = https.createServer(options, function (req, res)
{
app.handle(req, res);
});
securedServer.listen(config.securePort); //443 in this case
同样,此代码在具有 root 访问权限的 windows 和 mac 中均有效。所以,这不是问题的原因。
非常感谢您的帮助!
【问题讨论】:
标签: node.js macos https webstorm