我想使用中间件来检查某些路由(那些以/user/
开头的路由)的用户凭据,但令我惊讶的是server.use
不会将路由作为第一个参数而是{ {1}} restify-namespace
效果仍然是全球性的。
还有其他方法比将我的身份验证中间件传递给控制器旁边的所有路径更好吗?
答案 0 :(得分:0)
我想我只是使用server.use
并在中间件中进行以下路由检查:
if (req.url.indexOf('/user/') !== 0) {
return next();
}
答案 1 :(得分:0)
不幸的是,restify
似乎不像Express,它支持*
运算符。因此,我建议将你想要的路线分组并在它们之前应用.use
。
那是:
server.get('/test', function(req, res, next) {
// no magic here. server.use hasn't been called yet.
});
server.use(function(req, res, next) {
// do your magic here
if(some condition) {
// magic worked!
next(); // call to move on to the next middleware.
} else {
// crap magic failed return error perhaps?
next(new Error('some error')); // to let the error handler handle it.
}
});
server.get('/admin/', function(req, res, next) {
// magic has to be performed prior to getting here!
});
server.get('/admin/users', function(req, res, next) {
// magic has to be performed prior to getting here!
});
但是,我个人主张使用express
,但选择适合您需要的任何内容。