在express / connect中使用app.use()
我在快递网站上看到了示例代码:
var express = require('express'); var app = express(); // simple logger app.use(function(req, res, next){ console.log('%s %s', req.method, req.url); next(); }); // respond app.use(function(req, res, next){ res.send('Hello World'); }); app.listen(3000);
这里app.use()调用完全相同的签名的function,但能够顺序运行它们。 这是怎么做到的JavaScript?
这里是app.use()的定义: https : //github.com/senchalabs/connect/blob/master/lib/proto.js
Connect保持中间件和路由处理程序的“堆栈”(一个数组)。 处理请求时,只需按顺序遍历堆栈中的所有处理函数(并遵循一些路由匹配规则),即可调用处理函数。
this.stack.push({ route: route, handle: fn });