认识express模块

express 模块与 http 模块很相似,都可以创建服务器。不同之处在于,express 模块将更多 Web 开发服务功能封装起来,让 Web 应用开发更加便捷。本节将讲解使用 express 模块创建 Web 服务器,以及 express 模块中请求和响应对象的使用。

express模块的基本使用步骤

express 模块是第三方模块,使用之前,首先需要使用 npm 命令进行下载和安装,命令如下:

npm install express@4

express 模块的版本变化非常快,上面安装命令后面跟了 “@4”,表示安装的是 express 4.x 版,如果不带该后缀,则会自动下载和安装 express 模块的最新版本。

express 模块安装完后就可以在 Node.js 程序中使用了,其基本使用步骤如下。

  1. 导入模块。

  2. 使用构造函数创建 Web 服务器。

  3. 调用 listen() 方法启动 Web 服务器。

例如,下面代码使用 express 模块创建并启动了一个服务器,服务器地址为 http://127.0.0.1:52273/ ,代码如下:

//导入express模块
var express = require('express');
//创建Web服务器
var app = express();
//启动Web服务器
app.listen(52273, function () {
     console.log("服务器监听地址是 http://127.0.0.1:52273");
});

express模块中的响应对象

express 模块提供了 response 对象,用来完成服务器端响应操作,其常用方法及说明如表 14.1 所示。

image 2024 04 17 19 36 35 826
Figure 1. 表14.1 response 对象常用方法及说明

根据 body 参数数据类型的不同,response 对象可以向客户端返回不同的数据,如表 14.2 所示。

image 2024 04 17 19 37 25 509
Figure 2. 表14.2 body 参数数据类型及说明

【例14.1】实现向客户端返回数组信息。(实例位置:资源包\源码\14\01)

新建一个 .js 文件,首先导入 express 模块,并通过其构造函数创建一个 Web 服务器,然后使用 use() 方法创建一个数组,通过 response 对象的 send() 方法将其输出到客户端,最后使用 listen() 方法启动 Web 服务器。代码如下:

//引入express模块
var express = require('express');
//创建服务器
var app = express();
//监听请求与响应
app.use(function (request, response) {
     //创建数组
     var output = [];
     for (var i = 0; i < 3; i++) {
          output.push({
               count: i,
               name: 'name - ' + i
          });
     }
     //向客户端返回数组类型的信息
     response.send(output);
});

//启动服务器
app.listen(52273, function () {
     console.log('服务器监听地址在 http://127.0.0.1:52273');
});

运行 .js 文件,在浏览器中输入 http://127.0.0.1:52273/ ,可以看到如图 14.1 所示的界面效果。从图 14.1 可以看出,向 response 对象的 send() 方法中传递了一个数组类型的参数,返回给客户端的是一个 JSON 数据。

image 2024 04 17 19 40 27 457
Figure 3. 图14.1 客户端响应数组信息

express模块中的请求对象

express 模块提供了 request 对象,用来完成客户端请求操作,其常用属性、方法及说明如表 14.3 所示。

image 2024 04 17 19 41 01 945
Figure 4. 表14.3 request 对象中的属性和方法

【例14.2】判断当前请求用户使用的浏览器类型。(实例位置:资源包\源码\14\02)

新建一个 .js 文件,导入 express 模块,使用 express() 方法创建一个 Web 服务器,然后在 use() 方法中使用 request.header('User-Agent') 方法获取请求客户端的 User-Agent 信息,通过判断该信息确定用户使用的浏览器类型。代码如下:

//导入express模块
var express = require('express');
//创建服务器
var app = express();
//监听请求和响应
app.use(function (request, response) {
     //获取客户端的User-Agent
     var agent = request.header('User-Agent');
     //判断客户端浏览器的类型
     if (agent.toLowerCase().match(/chrome/)) {
          //发送响应信息
          response.send('<h1>*_*欢迎使用谷歌浏览器</h1>');
     } else {
          //发送响应信息
          response.send('<h1>^_^您使用的不是谷歌浏览器,<br>当然这并不影响浏览网页</h1>');
     }
});

//启动服务器
app.listen(52273, function () {
     console.log('服务器监听地址在 http://127.0.0.1:52273');
});

运行 .js 文件,分别打开谷歌浏览器和IE浏览器,在地址栏中输入 http://127.0.0.1:52273/ 后,可以看到如图 14.2 所示的界面效果。

image 2024 04 17 19 42 43 690
Figure 5. 图14.2 判断客户端浏览器类型