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

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

 

那么有什么办法可以让两个一起执行呢?那就是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,路由会根据方法的不同,自动跳转到不同的处理函数上。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值