Node.js 将中间件应用于Express中的路由
我希望将中间件应用于路由,而不管请求的类型如何。目前我有:Node.js 将中间件应用于Express中的路由,node.js,express,routes,Node.js,Express,Routes,我希望将中间件应用于路由,而不管请求的类型如何。目前我有: router.route('/campaigns') .get(restrictTo('advertiser'), restrictTo('admin'), queries.getCampaigns) .post(restrictTo('advertiser'), restrictTo('admin'), queries.createCampaign); 我想要的是: router.route('/campaigns'
router.route('/campaigns')
.get(restrictTo('advertiser'), restrictTo('admin'), queries.getCampaigns)
.post(restrictTo('advertiser'), restrictTo('admin'), queries.createCampaign);
我想要的是:
router.route('/campaigns', restrictTo('advertiser'), restrictTo('admin'))
.get(queries.getCampaigns)
.post(queries.createCampaign);
但是这似乎不起作用。您应该能够像这样使用
。use()
:
router.route('/campaigns')
.use(restrictTo('advertiser'), restrictTo('admin'))
.get(queries.getCampaigns)
.post(queries.createCampaign);
或:
您可以使用.all()
例如:
router.route('/campaigns')
.all(yourmiddleware)
.get(function (req, res, next) {
// your function ...
})
这对我很有用。express文档中说,您可以这样做:
app.use('/user/:id', function (req, res, next) {
console.log('Request URL:', req.originalUrl)
next()
}, function (req, res, next) {
console.log('Request Type:', req.method)
next()
})
将/user/:id
替换为所需路径
来源:应为.all()
,。use()
仅适用于路由器整体,而不适用于单个路由。
app.use('/user/:id', function (req, res, next) {
console.log('Request URL:', req.originalUrl)
next()
}, function (req, res, next) {
console.log('Request Type:', req.method)
next()
})