创建一个简单的 node.js 静态服务器
Posted
技术标签:
【中文标题】创建一个简单的 node.js 静态服务器【英文标题】:Creating a simple node.js static server 【发布时间】: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 等的文件夹),而不是其他路由:) 【参考方案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 服务器,通常使用 8080
或 3000
。
错误信息Error: listen EACCES 0.0.0.0:80
也给了你提示。 EACCESS
表示您没有权限在 80 端口打开服务器。只有 root 用户才能运行生产代码。
还有一条建议:AngularJS 在过去几年中发生了很多的变化。因此,如果您想学习它,请不要使用旧书。你学到的很多东西可能已经过时了,现在做的也不同了。
【讨论】:
这对我有用。只需对另一个端口进行简单更改即可使其工作。 8080 通常是我用于提供本地文件的端口,但我想我已经尝试过更改端口。大帮助!另外,我正在学习 AngularJS,而不是真正的 nodejs,但这本书似乎在推动大量的 node 和 express。无论哪种方式...感谢您的解释和解决方案。 @Rogue33 当然可以,很高兴为您提供帮助^^ 享受学习 Angular 的过程中的一些 Node 和 Express!以上是关于创建一个简单的 node.js 静态服务器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 express js 创建一个简单的 html 服务器