CNode

express源码中的next参数

问答
Yyooki0328发布于10 年前最后回复10 年前6 回复6468 浏览0 收藏

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)

I
IchiNiNiIchi#1·10 年前

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

S
scarletmu#2·10 年前

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

Y
yooki0328#4·10 年前
引用 scarletmunext是express本身的一个函数,一般用做当前中间件处理完之后向下一个中间件传递,比如权限拦截

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

I
i5ting#5·10 年前

express的next说明

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

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

A
ajaxQWER#6·10 年前

next是封装在express中的

参与回复
登录后即可参与回复。登录