我在 express 网站上看到示例代码:
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
最佳答案
Connect 保留中间件和路由处理程序的“堆栈”(数组)。当请求被处理时,它只是按顺序遍历堆栈中的所有处理函数,并(根据某些路由匹配规则)调用处理函数。
this.stack.push({ route: route, handle: fn });
关于javascript - app.use() 在 express/connect 中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051005/