Сравнить маршрут с параметрами маршрута в экспресс моей ACL

Я был создан простой ACL для использования в моем express маршрутизатор на основе jwt, У меня есть таблица разрешений, и я могу сравнить ее с текущими URL и методом. Но я понятия не имею, как я могу использовать параметры маршрутизации.

Разрешения:

 {
   "RoleId" : 1,
   "path": "/api/r/:rp",
   "methods": ["GET"]
 }

проверить доступ:

async function isAllowed(m,p,a) {

    /* count in permissions table m,p,a ( p = route, a = http method )        

    return count>=1 ? true : false
}

сравнить в промежуточном программном обеспечении:

if (await isAllowed(decoded.mobilePhone, req.originalUrl, req.method)) {
    console.log('allowed')
    return next()
}

у меня есть доступ к оригинальному URL в req.originalUrl но нет доступа к маршруту запроса (/api/r/:rp) для его сравнения.

Экспресс документ говорит, что есть req.route но это не определено, когда я использую router как это:

const express = require('express')
const router = express.Router()

router
    .get('/api/r/:rp',async(req,res) => {
        /* ... */
    })

module.exports = router

0 ответов

Другие вопросы по тегам