Как направить переведенные URL на модуль с азотом
Раньше я разрабатывал на английском языке, но на этот раз webApp, который я создаю, предназначен только для людей в моем городе, который находится во Франции.
В азоте, когда вы вызываете "/ user / login", азот вызывает user_login:main(). Я хотел бы, чтобы азота вызывал user_login: main (), когда запрос "/utilisateur/connexion".
Я хотел бы, чтобы азот вызывал ads_people:main(), когда запрос "/ annonces / personnes" и т. Д.
Есть ли способ добиться этого правильно?
Большое спасибо!
2 ответа
Вы можете сделать это легко с помощью плагина Nitrogen named_route_handler. Шаги:
Вставьте следующую строку перед вызовом азота:run():
wf_handler:set_handler(named_route_handler, get_routes()).
Добавьте функцию 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, если вы хотите сделать это в чистом азоте