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