Как направить переведенные URL на модуль с азотом

Раньше я разрабатывал на английском языке, но на этот раз webApp, который я создаю, предназначен только для людей в моем городе, который находится во Франции.

В азоте, когда вы вызываете "/ user / login", азот вызывает user_login:main(). Я хотел бы, чтобы азота вызывал user_login: main (), когда запрос "/utilisateur/connexion".

Я хотел бы, чтобы азот вызывал ads_people:main(), когда запрос "/ annonces / personnes" и т. Д.

Есть ли способ добиться этого правильно?

Большое спасибо!

2 ответа

Вы можете сделать это легко с помощью плагина Nitrogen named_route_handler. Шаги:

  1. Вставьте следующую строку перед вызовом азота:run():

    wf_handler:set_handler(named_route_handler, get_routes()).
    
  2. Добавьте функцию get_routes/0:

    get_routes() -> [
        {"/utilisateur/connexion", user_login},
        {"/annonces/personnes", annonces_persons},
        etc...
    ].
    

    Первый элемент в кортеже - это путь в URL, а второй - имя соответствующего модуля, который будет обрабатывать запросы с таким путем.

Используйте прокси перед Nitrogen, например, nginx, чтобы переписывать URL-адреса.

В качестве альтернативы, посмотрите некоторую документацию в src/handlers/route/named_route_handler.erl, если вы хотите сделать это в чистом азоте

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