Сравнить маршрут с параметрами маршрута в экспресс моей 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