创建一个简单的 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 服务器,通常使用 80803000

错误信息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 服务器

利用node的http模块创建一个简单的http服务器

尝试提供静态 JS 文件 Node.js,错误 404

使用Node.js手撸一个建静态Web服务器,内部CV指南

用node.js搭建一个静态资源站 html,js,css正确加载 跳转也完美实现!

Nuxtpress - Node.js 动态网站静态化之路