我正在尝试添加应该阻止访问部分站点的身份验证中间件:
app = express()
.get('/api/test', function (req, res) { ... })
.use('/api', function (req, res, next) {
if (req.param('key')) {
next();
} else {
res.json(401, {
message : 'Authentication failed'
});
res.end();
}
})
.get('/api/data', function (req, res) { ... });
我期望调用 /api/data 将首先由密钥检查器处理,然后(如果成功)由 /api/data 处理程序处理。而是首先由'/api/data'处理的请求。
似乎检查器适用于 /api/something_that_does_not_exist,但不适用于 /api/something_that_exist。
也许我错过了 express/connect 文档中的某些内容?
更新我已经跟踪到这样一个事实,即第一个 get/post 调用初始化路由器中间件,因此它首先被执行。