有人知道如何实现connect/express中使用的函数链吗?所以一个人可以做到这一点。
var app = {}, app.stack = []; app.use(function(r, s, n){ // dosomething }) require('http').createServer(function(r, s){ // execute functions in app stack })
t9eec4r01#
中间件“链”实际上只是一个“堆栈”,它实际上是一个简单的JavaScript数组,按顺序执行函数。无论何时调用use,connect都会将您的函数添加到中间件堆栈。当需要运行中间件时,connect只需执行所有函数,并执行一些逻辑来传递req, res, next参数,并连接next回调以表示继续处理中间件堆栈。我同意@robertklep的观点,你应该阅读源代码,因为它非常可读和有启发性。
use
req, res, next
next
1条答案
按热度按时间t9eec4r01#
中间件“链”实际上只是一个“堆栈”,它实际上是一个简单的JavaScript数组,按顺序执行函数。无论何时调用
use
,connect都会将您的函数添加到中间件堆栈。当需要运行中间件时,connect只需执行所有函数,并执行一些逻辑来传递req, res, next
参数,并连接next
回调以表示继续处理中间件堆栈。我同意@robertklep的观点,你应该阅读源代码,因为它非常可读和有启发性。