如何使用 express js 创建一个简单的 html 服务器
Posted
技术标签:
【中文标题】如何使用 express js 创建一个简单的 html 服务器【英文标题】:How to create a simple html server using express js 【发布时间】:2014-08-22 10:55:48 【问题描述】:我是 node.js 的新手,我想创建一个简单的 express.js 静态文件服务器,但我遇到了一些问题。 我已经像这样在全球范围内安装了 express.js 4.2:
npm install -g express-generator
我在 httpsrv.js 中有这段代码:
var http = require('http');
var express = require('express');
var app = express();
app.use('/', express.static(__dirname + '/public'));
app.listen(3000, function() console.log('listening'));
我不确定是否可以我猜这还不够,但我无法运行它失败并出现错误:找不到模块'express'。
我想创建一个简单的 http 服务器,它可以从特定文件夹(例如“\public”)提供服务,并且我使用的是 .html 语言。我在互联网上发现了很多废话,我不想使用这个 .jade 的东西,我不想用 express 等创建一个空的 web 应用程序。我想要 express.js http 服务器,它可以像 Apache 一样运行并且可以首先从指定的文件夹提供静态 html 页面。 任何人都可以帮助我,推荐一篇逐步解释的好文章,因为我是初学者。
【问题讨论】:
您是否按照这里的步骤操作:expressjs.com/guide.html 我不认为你需要安装 express-generator,你应该运行 npm install -g express,然后尝试加载它。 我也安装了 express 4.2,但我读过 express 4.x 也需要这个 express-generator。 ...httpsrv.js
是从哪里来的?它不遵循 express 4.x 约定。看起来它来自较旧的 3.x 示例。 express 生成器创建app.js
导出大部分需要的内容,npm start
启动服务器。看起来您没有使用生成器,或者您使用了它并且...忽略了输出?
【参考方案1】:
如果您只是想从名为“public”的目录中提供静态文件,您可能会遇到这样的应用:
var path = require('path');
var express = require('express');
var app = express();
var staticPath = path.join(__dirname, '/public');
app.use(express.static(staticPath));
app.listen(3000, function()
console.log('listening');
);
您需要确保已安装 Express。您可能会在与上述 javascript 文件相同的目录中运行 npm install express --save
。一切准备就绪后,您将运行 node the_name_of_the_file_above.js
来启动您的服务器。
【讨论】:
现在差不多好了,但是当我启动服务器并尝试在浏览器中查看时,我收到以下消息:“Cannot GET /”。我想它只是一些路径问题。我的 javascript 服务器文件放在同一个“/public”目录中,我想提供什么服务有问题吗? 改成path.join(__dirname, '/public')
如何在 https 和 http 上运行应用程序?
@JitendraPancholi 这取决于,但您可以使用内置的 https
模块来执行此操作。如果您需要更多指导,很高兴找到示例。
谢谢我现在做了。【参考方案2】:
首先安装 express 模块而不是 express-generator
npm install express
试试这个删除公共
var express = require('express');
var app = express();
app.use('/', express.static(__dirname));
app.listen(3000, function() console.log('listening'));
一切正常。
【讨论】:
【参考方案3】:这个问题甚至不需要任何代码或框架;从npm 安装 http-server,在命令提示符下导航到文件夹并运行以下命令:
http-server
它会启动一个轻量级的 http 服务器并立即从文件夹中提供静态内容,可以使用 http://localhost 进行查看
【讨论】:
你甚至没有回答这个问题。 他/她的要求是设置一个简单的服务器来提供来自文件夹的静态页面;这个包正是这样做的。您不需要为此使用 Express 之类的框架。以上是关于如何使用 express js 创建一个简单的 html 服务器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Express.js 将用户重定向到不同的网页? (是的,我尝试过使用`redirect`方法)[重复]
如何在我的简单 Express 应用中使用 Node.js 集群?
如何使用 Express / Node.JS 创建可在所有视图中访问的全局变量?
Node JS+Express:如何在 HTML(EJS) 中定义和使用 MySQL 数据?