Node.js+Webpack开发实战
上QQ阅读APP看书,第一时间看更新

4.4 请求对象

每个路由函数都会接收一个request对象,通过该对象可以获取本次请求的一些信息,比如请求方法、请求路径、请求参数等等。

表4-1是request对象常用的属性说明。通过“request.属性名”可以访问对应的属性。

表4-1 request对象常用的属性

访问http://localhost:8080/user/1?name=xialei&test=1,将响应以下JSON:

4.4.1 获取请求Cookie

Express默认不解析请求报头中的Cookie。如果需要获取Cookie,可以自己开发中间件或者使用cookie-parser中间件。

中间件是可以访问请求对象、响应对象以及next()的函数。中间件可以完成以下任务:

· 执行任何代码。

· 更改请求和响应对象。

· 结束请求处理。

· 调用下一个中间件。

比如cookie-parser中间件本质上还是解析header中cookie请求报头,将其挂载到request.cookies上。关于中间件的内容将在后面的内容详细介绍,这里我们先直接使用。

安装cookie-parser中间件:

npm install cookie-parser --save
// 导入express模块
const express = require('express');
const cookieParser = require('cookie-parser');
// 创建应用
const app = express();
app.use(cookieParser()); // 使用中间件

app.get('/', (req, resp) => {
   resp.json({ cookies: req.cookies });
});
// 开启监听
app.listen(8080, () => {
   console.log('listen on 8080');
});

访问http://localhost:8080/,将响应以下JSON:

4.4.2 获取请求体

Express默认也不处理请求体,如果需要获取请求体,需要监听request的data和end事件手动解析,这里我们直接使用body-parser中间件即可。

安装body-parser中间件:

npm install body-parser –save
// 导入express模块
const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(bodyParser()); // 使用中间件

app.post('/', (req, resp) => {
    resp.json(req.body);
});
// 开启监听
app.listen(8080, () => {
    console.log('listen on 8080');
});

使用PostMan向http://localhost:8080发起POST请求,请求JSON如下:

{
   "name": "xialei"
}

服务端会响应如下JSON:

{
   "name": "xialei"
}

PostMan是一个网络工具,可以方便地进行接口请求与调试。下载地址:https://www.getpostman.com/downloads/。