Node.js监听80端口报错解决方法

server.js文件监听本地的80端口

server.listen(80, '127.0.0.1', () => {
        console.log('server is running');
    });

在终端执行node server.js,这时候会报错, 如下:

Error: listen EACCES 127.0.0.1:80
    at Object._errnoException (util.js:992:11)
    at _exceptionWithHostPort (util.js:1014:20)
    at Server.setupListenHandle [as _listen2] (net.js:1338:19)
    at listenInCluster (net.js:1396:12)
    at doListen (net.js:1505:7)
    at _combinedTickCallback (internal/process/next_tick.js:141:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:695:11)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

这是为啥呢?

原来是因为Linux 下监听 < 1024 的端口要 root 权限。

怎么解决这个问题?
看了网上一大堆的解决方案, 说是改这改那的配置, 还有Apache的配置等等,而且都是相同的答案(中国人喜欢转载)。

其实最简单的方式是:sudo node server.js

这时候你在终端可以看到要你输入Password, 输入完Mac电脑密码就成功了!

Password:
server is running

感谢!!!

推荐阅读更多精彩内容