Node.js笔记之利用express创建静态文件HTTP服务器
在上一篇笔记中,使用node.js编写了一个可以提供访问静态文件的HTTP服务。在本篇笔记中,打算利用express这个node.js下的框架来搭建一个相同的HTTP服务。
安装express,和利用express generator 生成一个express项目的说明,就不在这里重述。在express的官网上有详细的入门介绍,可以参考:http://www.expressjs.com.cn/starter/installing.html
这里只记录一下编写的代码,作为学习和后续使用的记录。
我创建的目录结构很简单:
app.js :是主应用程序;
index.html :静态http服务器提供的默认首页;
public:文件夹,用来存放静态文件,我这里存放的是css,后面也可以把img等文件存放在这里。
看一下app.js的实现:
var express = require('express'); var app = express(); app.use(express.static('public')); app.get('/', function (req, res) { // res.send('Hello World!'); res.sendfile('index.html'); }); var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port); });
关键的代码说明:
1、app.use(express.static('public'));
按照express官网的介绍说明,该语句是将工程目录中的public文件夹作为静态资源的文件夹。express.static(),是express提供的静态文件中间件。关于express的中间件,我理解和node.js的pipeline类似,在一个对应的请求出发时,可以通过不同的中间件进行处理。
2、
app.get('/', function (req, res) {
// res.send('Hello World!');
res.sendfile('index.html');
});
这里使用了express的路由功能,对http的get方法,请求路径为"/"的情况下,直接将根目录下的index.html返回。
在命令行启动app.js,在浏览器中输入地址:http://localhost:3000查看效果:
这里,不需要输入需要访问的文件名,直接通过定义的路由实现了文件的跳转。
最后,我又做了一个实验,在public的文件夹下,创建了chunxiao.html。将上面的路由实现代码做了一下修改,路由跳转的页面为public文件夹下的chuanxiao.html。
app.get('/', function (req, res) { // res.send('Hello World!'); res.sendfile(__dirname + '/public/chunxiao.html'); });
将chunxiao.html的内容稍作变动,将最后一句去掉。重新运行程序,在浏览器中输入地址,查看效果:
可以看到这里实际输出的就是我们修改后的chunxiao.html
最后,我使用express的generator生成器生成了一个新的app:myapp,该app为后续的实践作准备。
- 【Node.js-3】express介绍、express-static处理静态文件请求、链式操作next()、中间件、cookie、session
- nodejs+express+jade创建新文件
- NodeJS express访问html,css,JS等静态资源文件
- 利用node.js创建静态web服务器
- node.js利用express实现文件上传
- nodejs express 静态文件的路径
- node.js学习笔记(3)--Express创建的项目分析
- 学node的一点小笔记(十一) express(3)设置静态文件
- Node.js —— 使用express模块创建静态web服务器及其路由
- nodejs express 上传文件
- Node.js 笔记(一) nodejs、npm、express安装
- Node.js 学习笔记(1) 文件操作
- 为node.js服务器添加静态网页,express模块。
- Node.js 创建HTTP服务器
- 【node.js】windows安装express:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- 基于nodejs+express(4.x+)实现文件上传功能
- Node.js开发笔记Windows篇(二)安装Express
- Node.js利用Express框架搭建小型网站(下)
- node.js在windows下的学习笔记(5)---用NODE.JS创建服务器和客户端
- Node.js静态资源类文件请求处理