Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有谁知道如何实现连接/表达中使用的功能链。所以一个人可以做到这一点..
var app = {}, app.stack = []; app.use(function(r, s, n){ // dosomething }) require('http').createServer(function(r, s){ // execute functions in app stack })
中间件“链”实际上只是一个“堆栈”,它实际上是一个简单的 JavaScript 函数数组,按顺序执行。每当您调用use时,connect 都会将您的函数附加到中间件堆栈。当需要运行中间件时,connect 只是按顺序执行所有函数,并带有一些逻辑来传递req, res, next参数并连接next回调以表示继续处理中间件堆栈。我同意@robertklep 的观点,您应该阅读源代码,因为它非常具有可读性和启发性。
use
req, res, next
next