以下代码来自http://expressjs.com/en/guide/using-middleware.html#middleware.router。它定义了快速路由器实例上的中间件。它工作正常,但如果我定义另一个路由器,该路由器也将使用相同的中间件。我是否可以仅为特定的express.Router()
实例定义中间件?
var app = express()
var router = express.Router()
// predicate the router with a check and bail out when needed
router.use(function (req, res, next) {
if (!req.headers['x-auth']) return next('router')
next()
})
router.get('/', function (req, res) {
res.send('hello, user!')
})
// use the router and 401 anything falling through
app.use('/admin', router, function (req, res) {
res.sendStatus(401)
})
答案 0 :(得分:-1)
要使用特定于路线的内容,您可以使用.all()函数
router.route('/')
.all(function (req, res, next){
// do middleware stuff here and call next
next();
})
.get(function (req, res) {
res.send('hello, user!');
});