2015-01-12 5 views
0

Я хочу использовать ACL для авторизации (https://www.npmjs.com/package/acl), но я не могу использовать его со сложными URLs как http://domain.com/api/v1/resource/:id1/anotherResource/:id2Как преобразовать URL в регулярное выражение заявление

Использование узла JS, экспресс может обрабатывать найти правильную функцию от URL из оригинал запроса url или что-то еще. Мне нужно поместить инструкции регулярных выражений запрошенных URL-адресов в конфигурацию ACL.

Я отлаживал экспресс шаг за шагом и нашел регулярную форму URL-адреса на 84-й строке Layer.js, но мне нужно знать, что каждая регулярная форму url использует модуль ACL в качестве промежуточного программного обеспечения.

Есть ли способ получить строку регулярного выражения (как на рисунке ниже) URL-адреса для использования в промежуточном программном обеспечении?

enter image description here

ответ

0

Используйте path-to-regexp модуль, который используется internally by expressjs (на самом деле вы были очень близки к нахождению его при отладке)

+0

Я видел это, но я не мог преобразовать _request.originalUrl в соответствующую функцию выразить. Я хочу написать функцию промежуточного программного обеспечения, которая может определить, какая функция будет работать. – uzay95

+0

Может быть, я мог бы с этим помочь. Какова будет цель промежуточного программного обеспечения - вы преобразовываете URL-адрес запроса в регулярное выражение или сопоставляете его с некоторыми другими данными? – lukaszfiszer

+0

У меня есть функции REST для разных адресов. И мне нужно разрешить пользователям получать/не получать доступ к этим адресам. Для этого я хочу использовать это для авторизации 'route ('/ api/v1/resource1 /: id1/resource2 /: id2'). All (function (_request, _response, _next) {// разрешать и передавать или не отправлять _next func}) 'Но промежуточное программное обеспечение acl, которое я использую, не может разрешить подобные URL-адреса (например: '/ api/v1/resource1 /: id1/resource2 /: id2'). Он получает только этот «/ api/v1/resource», и этого недостаточно для меня. Но если я могу разрешить запрошенный url как regexp, я могу передать '/ api/v1/resource1 /: id1/resource2 /: id2 '' ссылка на ACL. – uzay95

Смежные вопросы