在express / connect中使用app.use()

时间:2013-06-11 18:19:21

标签: javascript node.js express connect

我在快递网站上看到了示例代码:

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()调用完全相同签名的函数,但能够按顺序运行它们。这是如何在javascript中完成的?

这是app.use()的定义:https://github.com/senchalabs/connect/blob/master/lib/proto.js

1 个答案:

答案 0 :(得分:4)

Connect保持"堆栈" (一个数组)中间件和路由处理程序。处理请求时,它只是按顺序迭代堆栈中的所有处理函数,并(根据一些路由匹配规则)调用处理函数。

this.stack.push({ route: route, handle: fn });