2013-06-28 39 views
0

有谁知道如何实现connect/express中使用的函数链。因此,人们可以做到这一点..NodeJS Connect/Express app.use处理

var app = {}, app.stack = []; 
app.use(function(r, s, n){ 
    // dosomething 
}) 

require('http').createServer(function(r, s){ 
    // execute functions in app stack 
}) 
+0

您想重新创建Connect/Express的中间件堆栈吗?如果是这样:为什么? – robertklep

+0

教育。那func链似乎是一个有用的模式.. –

+1

那么,一个好的起点是['connect/lib/proto.js'](https://github.com/senchalabs/connect/blob/master/lib/proto。 js),其中'use'和'handle'被实现。 – robertklep

回答

1

中间件“链”,其实只是一个“堆栈”,这实际上是一个函数,以执行一个简单的JavaScript数组。无论何时您拨打use,连接将您的功能附加到中间件堆栈。当需要运行中间件时,连接只需按照逻辑顺序执行所有功能即可通过req, res, next参数并连线next回调意味着继续处理中间件堆栈。我同意@robertklep,你应该阅读源代码,因为它非常易读和明了。