2015-10-20 3 views
2

Я ищу функцию обратной маршрутизации для Hapijs. Например, если у меня есть маршрут /route/{param1}/{param2} по имени route_name, я хочу функцию:Как сделать обратную маршрутизацию hapijs?

reverseRoute('route_name', {param1: 'value1', param2: 'value2'}); 

который возвращает /route/value1/value2

Я прибегая к помощи на некоторое время, но не может найти решение.

Любые предложения?

ответ

2

я соединял плагин называется hapi-to, который может это сделать , Он управляет параметрами, строками запросов, подстановочными знаками и несколькими параметрами.

С вашим примером, он будет работать как:

request.to('route_name', { params: {param1: 'value1', param2: 'value2'} }

Посмотрите на tests еще на несколько примеров того, как он может быть использован.

+0

Спасибо! Это похоже на то, что мне нужно. Но это раздражает, если мне приходится каждый раз отправлять параметры для просмотра. Вы знаете, как я могу получить доступ к объекту запроса? – Teddy

+0

Да, есть. К сожалению, это еще не все, что хапи. Я подумал о том, чтобы интегрировать его с помощниками вида, но пока не дошел. –

+0

Здравствуйте, я думаю, что сейчас я просто создам URL-адрес в обработчике маршрута и передам его в представление. Хотя это не изящно, но это все еще возможно. Большое спасибо! – Teddy

0

Я думаю, что вы ищете плагин hapi-named-routes.

Это позволит вам создавать маршруты, такие как:

{ 
    method: 'GET', 
    path: '/about', 
    config: { 
    handler: function (request, reply) { 
     reply.view('about'); 
    }, 
    id: 'about' 
    } 

} 

так что вы можете ссылаться на этот маршрут в ваших просмотров:

<a href="{{path.about}}">About</a> 
+0

Здравствуйте, спасибо за ваш ответ. Я посмотрел на хапи-именованные маршруты, но это всего лишь половина того, что я хочу. Он не поддерживает создание URL-адреса из параметров. – Teddy

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