express源码中的next参数
发布于 8 年前 作者 yooki0328 5871 次浏览 来自 问答

function createApplication() { var app = function(req, res, next) { app.handle(req, res, next); }; 个人理解是 app在http.createServer(this)被调用,参数req,res通过createServer()触发’request’ event 传递给app函数,不太明白next是怎么来的?希望有人可以解答一下~谢谢

6 回复

很初级的理解就是express 在初始化时会创建一个中间件的栈,next 是一个函数,被调用时会去调用接下来的中间件。 想了解多一点可以看看这篇 https://cnodejs.org/topic/5757e80a8316c7cb1ad35bab 不过里面那个非路由中间件跟路由中间件我也不清楚指的是什么

next是封装在express中的

next是express本身的一个函数,一般用做当前中间件处理完之后向下一个中间件传递,比如权限拦截

@IchiNiNiIchi 嗯嗯,我再仔细看看代码。谢谢

@scarletmu 有请求的时候,调用app.handle(req,res,next) next是什么时候传递进来的呢?

express的next说明

  • 3.x 使用connect作为中间件
  • 4.x 在express/lib/router/里实现router.handle(req, res, next);
  • 5.x 使用独立的router模块

单独开了个贴,https://cnodejs.org/topic/582656dee885ce5a39382831 ,你看看吧 @yooki0328

回到顶部