以下のコードは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)
})
このミドルウェアは、すべてのルートに適用されます。私はそれをただ一つのルートに適用したい。私は 'express.Router()'からのより多くのルートを持っており、別のパスからのリクエストを処理しています。だから私はミドルウェアが1つのルートにのみ適用されるのを探しています。 –
私は私の答えを更新しました。 – efkan