Express中间件入门

205 阅读2分钟

「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战

前言

 大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

 本文主要介绍Express的中间件的使用,主要内容为应用程序级中间件以及路由器级中间件,以及两者的区别。

1. Express中间件

简单来说中间件就是处理HTTP请求的函数,Express最突出的特点就是当一个中间件处理完请求后使用next()把请求交给下一个中间件处理。如果当前的中间件没有终结请求,并且没有调用next(),那么剩下的中间件将会被挂起,而不会被执行。

1.1 应用程序级中间件

使用app.use和app.Method()方法来挂载中间件。

使用app.use()和app.Method()的区别是,前者挂载时,无论什么HTTP请求都会执行该中间件,如果连挂载路径都没有,那么将会直接执行。而后者在挂载路径执行对应的HTTP方法时才会执行该中间件。

 const app = express()
 app.use("/",function(req,res,next){
     console.log("只要访问根路径,该中间件就会被执行。");
     next();
 })
 app.get('/get',function(req,res,next){
     cobnsole.log("只有get请求访问/get路径时,该中间件才会被执行。");
     next();
 })

1.2 路由器级中间件

路由器级中间件和应用程序级中间件的工作方式相同,只是前者被绑定到路由器的实例上。使用router.use()和router.Method()来挂载中间件。

 router =  express.Router();

具体工作方式参考上面应用程序级中间件,只需要把app更改为router即可,这里就不再缀述。

1.3 应用程序级中间件和路由器级中间件区别

应用程序级中间件和路由器级中间件用法差不多,那为什么还有分这两个级别呢?

其实总的来说这两者并没有什么区别,只是两者所绑定的对象不同,所处的级别不同,实际上app.use()内部调用了router.use(),在实际开发的项目中,一般使用的还是router.use().

结语

以上就是关于Express的一些入门介绍,希望对读者有所帮助。当然要想学好Express的使用,读者还需要参考更多的关于Express中间件的文章和视频,一起加油吧。