一、什么是中间件

中间件(middleware)就是一个方法,一般情况下需携带next参数,express进行路由配置时的回调函数,但中间件在使用时,一般都是使用use方法

app.use(’/’,(request,response,next)=>{
next();
});
------------------------- 这个回调函数就是一个中间件 ----------------------------
重要:切记!!!在使用中间件处理完毕数据后,一定要调用next方法,否则后续代码或路由都无法执行或匹配。

二、中间件的分类

中间件有三种,分别是自定义中间件,内置中间件,第三方中间件,接下来我一一介绍:

(1)自定义中间件:

顾名思义,就是自己定义的中间件。就是在回调函数中写入自己需要的方法事件。例:

自定义解析post参数中间件:

//post参数解析中间件
function bodyParser(req,res,next){
    let arr = [];
    req.on("data", chunk => {
        arr.push(chunk);//将读取到的数据存储到数组中
    });
    req.on('end', () => {       //post 数据读取完毕
        let data = Buffer.concat(arr).toString();
        // console.log(qs.parse(data));
        req.body = qs.parse(data);//将读取到的post参数数据存储到request对象中body属性中
        next();//注意,一定要数据读取完毕之后,在顺延(转发)
    })
}
//自定义post参数解析中间件
app.use(bodyParser);
(2)内置中间件:

内置中间件就是express内部本来就有的,无需下载,用的时候直接使用就可以

//使用内置中间件
app.use(express.static('public'));//指定public目录中所有内容为静态资源
app.use(express.json());//能够处理post请求中的json数据
app.use(express.urlencoded());//能够处理post请求中的urlencodeed格式的数据
(3)第三方中间件:

第三方中间件需要下载,下载之后引入到代码中才可以使用,如:

nodemon:服务端代码一旦进行了修改,就需要重新将代码部署到服务器,这个操作非常频繁,可以通过nodemon来进行一个自动化配置和部署(热更新)
svg-captcha:图形验证码的中间件,使用该中间件,可以生产一个图形验证码
serve-favicon:用于服务器端设置favicon视觉提示,其实就是浏览器标签标题栏上的小图标
multer:multer是一个node.js中间件,用于处理多部分/表单数据,主要用于上传文件


注意:nodemon作用是进行热更新,意思是开发过程中可以不用每次改变时都重新运行服务器,会跟着你每一次保存时自动重新运行服务器,因此nodemon应该安装为开发依赖