的总结:其实当有请求的时候,会先处理中间件,直到各个中间件都处理完才会进入路由的方法体。我们可以使用use来注册中间件,然后在中间件中使用next()来帮助我们在执行完中间件之后执行下一个中间件。如果不使用next(),请求就会被挂起,后面的中间件就得不到执行的机会。注意:中间件的注册需要放在路由句柄前面varapp=express()app.use(function(req,res,next){console.log(req,res)next()})app.get('/',function(req,res,next){console.log("helloworld")})为什么要在中间件中使用next()来帮助我们执行下一个中间件呢?为什么不像普通函数那样直接调用它,一个完成另一个呢?那是因为中间件中可能存在异步操作,所以到达函数底部并不代表中间件执行完毕。由于express不知道中间件什么时候完成,所以必须等到显式调用next()函数后,才能进入下一个中间件处理
