【问题标题】:Creating a simple node.js static server创建一个简单的 node.js 静态服务器
【发布时间】:2017-12-06 01:44:19
【问题描述】:

var express = require('express');
var app = express();
app.use('/', express.static('./'));
app.listen(80);

我通过“node server.js”在 cli 中收到的错误消息是: 事件.js:160 投掷者; // 未处理的“错误”事件 ^

错误:监听 EACCES 0.0.0.0:80 在 Object.exports._errnoException (util.js:1018:11) 在exports._exceptionWithHostPort (util.js:1041:20) 在 Server._listen2 (net.js:1245:19) 在听 (net.js:1294:10) 在 Server.listen (net.js:1390:5) 在 EventEmitter.listen (G:\angular\node_modules\express\lib\application.js:618:24) 在对象。 (G:\angular\server.js:4:5) 在 Module._compile (module.js:570:32) 在 Object.Module._extensions..js (module.js:579:10) 在 Module.load (module.js:487:32)

任何想法为什么一个简单的代码会产生错误?我拿到 我正在尝试学习的旧 angularjs 书中的代码。变化 可能是节点还是快递?

【问题讨论】:

  • 您需要将资源名称添加为静态路由(例如包含前端代码或 html 等的文件夹),而不是其他路由:)

标签: javascript angularjs node.js express


【解决方案1】:

此代码对我有用,请尝试一下:

var express = require('express');

var app = express.createServer();

app.get('/', express.static(__dirname + 'your path'));

app.listen(80);

【讨论】:

    【解决方案2】:

    Error: listen EACCES 表示您无权监听该端口。尝试不同的端口。

    静态内容应该像这样提供

    app.use(express.static(__dirname + '/'));

    __dirname代表当前目录。

    【讨论】:

      【解决方案3】:

      在 Unix 上,1024 以下的所有端口都称为Privileged Ports。只有 root 或其他特定系统用户可以在这里启动服务。

      当您与普通用户一起编程时(应该如此),习惯上在 1024 以上的端口上启动您的开发服务器。对于 Web 服务器,通常使用 80803000

      错误信息Error: listen EACCES 0.0.0.0:80也给了你提示。 EACCESS 表示您没有权限在 80 端口打开服务器。只有 root 用户才能运行生产代码。

      还有一条建议:AngularJS 在过去几年中发生了很多的变化。因此,如果您想学习它,请不要使用旧书。你学到的很多东西可能已经过时了,现在做的也不同了。

      【讨论】:

      • 这对我有用。只需对另一个端口进行简单更改即可使其工作。 8080 通常是我用于提供本地文件的端口,但我想我已经尝试过更改端口。大帮助!另外,我正在学习 AngularJS,而不是真正的 nodejs,但这本书似乎在推动大量的 node 和 express。无论哪种方式...感谢您的解释和解决方案。
      • @Rogue33 当然可以,很高兴为您提供帮助^^ 享受学习 Angular 的过程中的一些 Node 和 Express!
      猜你喜欢
      • 2011-08-23
      • 2011-02-12
      • 2014-10-10
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多