WebStorm node.js EACCES错误443在Mac上运行端口

时间:2014-04-21 05:57:29

标签: node.js macos https webstorm

我有一个在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

同样,此代码在Windows和Mac中都可以使用root访问权限。所以,这不是问题的原因。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

提交请求以启用从WebStorm运行node.js作为sudo:http://youtrack.jetbrains.com/issue/WEB-11972

同时,在Mac上的其他端口运行应用程序并将端口转发配置为:

sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443

答案 1 :(得分:0)

我可以建议使用端口转发。有关可能的解决方法,请参阅https://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user 另一种可行的方法是将WebStorm本身作为sudo运行......

无论如何,请随意提交一个请求,以便将节点作为sudo运行到youtrack,http://youtrack.jetbrains.com/issues/WEB