我正在学习 angularJS 书中的教程并且必须设置服务器。这是 server.js 文件:
var express = require('express');
var app = express();
app.use('/', express.static('./'));
app.listen(80);
我收到此错误:
$ node server.js
events.js:154
throw er; // Unhandled 'error' event
^
Error: listen EACCES 0.0.0.0:80
我已经知道,错误 EACCES 意味着我没有访问端口 80 的权限,但我不知道如何解决这个问题。非常感谢任何帮助!
原文由 olivier 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您需要在端口 80 上运行服务器,您应该使用像 nginx 这样的反向代理,它将在特权端口上使用系统帐户运行,并将请求代理到在非特权端口(> 1024)上运行的 Node.js 服务器。
在开发环境中运行时,您几乎可以自由地以 root 身份运行(即
sudo node server.js
),但这在生产环境中相当危险。这是一个示例 nginx 配置,它将查看请求是否针对文件系统中存在的文件,如果不存在,则将请求代理到在端口 9000 上运行的 Node.js 服务器