上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/。