NodeJs——(11)控制权转移next

简介: ①之前有提到,假如有同一路径有两个方法来对其进行处理,那么只有匹配到的第一个方法会被执行,剩余的将略过;   那么有什么办法可以让两个一起执行呢?那就是next   具体而言,如代码: 在index.js中添加代码: router.get('/base/pageA', function (req, res, next) { res.send('index.js.');

①之前有提到,假如有同一路径有两个方法来对其进行处理,那么只有匹配到的第一个方法会被执行,剩余的将略过;

 

那么有什么办法可以让两个一起执行呢?那就是next

 

具体而言,如代码:

在index.js中添加代码:

router.get('/base/pageA', function (req, res, next) {
    res.send('index.js.');
    next();
});


 

在base.js中添加代码

router.get('/pageA', function (req, res) {
    //res.send('base.js!');
    console.log("base.js")
})

 

注意,之所以注释掉中间那一行,是因为这样写会出错,因此第一个负责返回给用户,第二个负责在控制台显示。

 

启动app.js,页面显示:index.js.

而控制台显示:base.js

 

②这种方法的优点:

【1】轻易的实现中间件。(即将A——》B的流程修改为A——》C——》B这样);

【2】提高代码的复用性。例如,我们首先要对一个请求进行检查,如果成立,然后对其进行处理。而这个请求可能是GET,可能是DELETE,也可能是POST或者PUT。

假如每个请求的处理函数,都需要添加一段检查代码,那么显然是不美观的。因此,我们使用all来进行处理,再在all的最后调用next,路由会根据方法的不同,自动跳转到不同的处理函数上。

 

目录
相关文章
|
4月前
|
运维 监控 Kubernetes
中间件故障转移自动切换
【7月更文挑战第25天】
44 2
|
4月前
|
Python
Python的`signal`模块提供了访问底层操作系统提供的信号机制的方式。信号是操作系统用来通知进程发生了某种情况(如用户按下Ctrl+C)的一种机制。
Python的`signal`模块提供了访问底层操作系统提供的信号机制的方式。信号是操作系统用来通知进程发生了某种情况(如用户按下Ctrl+C)的一种机制。
|
4月前
|
API 调度
从操作系统层面描述线程的五种状态
从操作系统层面描述线程的五种状态
|
小程序 JavaScript API
小程序 - 起步:小程序的构成、宿主环境、协同工作和发布
小程序 - 起步:小程序的构成、宿主环境、协同工作和发布
109 0
|
消息中间件 NoSQL Java
【操作系统】生产环境消失的进程如何排查
【操作系统】生产环境消失的进程如何排查
【操作系统】生产环境消失的进程如何排查
|
JSON 小程序 JavaScript
【小程序】宿主环境之通信模型和运行机制
【小程序】宿主环境之通信模型和运行机制
101 0
【小程序】宿主环境之通信模型和运行机制
|
人机交互
请简述操作系统OS是如何介入用户程序的运行过程中。
请简述操作系统OS是如何介入用户程序的运行过程中。
172 0
|
程序员 C语言
Win知识 - 程序是怎样跑起来的——了解程序运行方式的必要性
Win知识 - 程序是怎样跑起来的——了解程序运行方式的必要性
143 0
Win知识 - 程序是怎样跑起来的——了解程序运行方式的必要性
|
存储 编译器 C语言
Win知识 - 程序是怎样跑起来的——函数调用机制
Win知识 - 程序是怎样跑起来的——函数调用机制
110 0
Win知识 - 程序是怎样跑起来的——函数调用机制
VB编程:DoEvents将控制权交给系统,防止无限循环
VB编程:DoEvents将控制权交给系统,防止无限循环
186 0