比较常用的第三方中间件:
body-parser
:主要是用于解析body中的数据,并将其保存为Request对象的body属性
cookie-parser
: 主要是解析客户端的cookie数据,并将其保存为Request对象的cookie属性
express-session
: 解析服务端生成的sessionid对应的session数据,并将其保存为Request对象的session属性。
- body-parser模块:
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
// 拦截所有请求,配置body-parser模块
app.use(bodyParser.json());
// extended: true时,方法内部使用第三方qs模块进行处理请求参数
app.use(bodyParser.urlencoded({extended: true})); // 一般设置为true
// extended: false时,方法内部使用queryString内置模块处理请求参数
// app.use(bodyParser.urlencoded({extended: false}))
app.post('/qryData', (req, res, next) => {
console.log(req.body);
})
app.listen(3000, () => console.log('http://localhost:3000'))
图1.png
-
处理错误的中间件:
在程序执行过程中,不可避免的会出现一些无法预料的错误,比如文件读取失败,数据库连接失败,错误处理中间件是一个集中处理错误的地方。
app.use((err, req, res, next) => {
res.status(500).send(err); // 如果请求返回的状态码为500,那么抛出错误
})
如果想要异步执行抛异常,那么可以使用next()回调函数。
next回调函数加了参数就会走到错误中间件去。
网友评论