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为后续的实践作准备。

猜你喜欢

转载自lottons88.iteye.com/blog/2379730