0

У меня есть приложение Express, где целевая страница приглашает людей ввести свой адрес электронной почты, а затем нажать «Зарегистрироваться» или «Войти», в зависимости от есть ли у них учетная запись или нет.Node.js/Express Передача данных между страницами без разметки маршрута RESTful

Затем пользователь переходит к «/ signup» или «/ login» через запрос POST, так что адрес электронной почты, который они ввели, может быть передан вместе.

Но теперь, когда я использовал POST для обоих этих маршрутов, я должен отправить POST на другой URL-адрес для обработки их данных регистрации или регистрации учетных данных, таких как app.POST («/ register») и app.POST ("/войти"). Это выглядит довольно неряшливо и, безусловно, бесполезно с маршрутизацией RESTful, к которой я хотел бы присоединиться.

Я знаю, что могу передавать данные через URL-адрес с помощью запроса GET, но мне тоже не нравится это решение.

Каков наилучший подход в этой ситуации? Должен ли я просто использовать запросы GET и перестать быть таким суетливым? Или есть другой способ, которого я еще не видел?

Спасибо добрым народам!

ответ

1

Я вижу, почему вы чувствуете, что это беспорядок с подходом RESTful, а альтернативным методом было бы хранить адрес электронной почты на стороне клиента, а не отправлять его на сервер - пока они фактически подписываются.

Вы можете использовать веб-API LocalStorage для хранения адреса электронной почты в браузере клиента, а затем загрузить его, когда пользователь достигнет пути /signup.

let email = document.querySelector('input[name="email"]').value 
localStorage.set('email', email) 

затем позже, когда пользователь нажимает на /signup маршрут вы могли бы сделать:

let email = localStorage.get('email') 
document.querySelector('input[name="email"]').value = email 

Это должно быть в <script> тег для двух маршрутов.

Вы также можете использовать sessionStorage, который очищается, когда пользователь закрывает свой браузер, а localStorage - это постоянное хранилище.

+0

eHigh five dude! Это очень полезно. –

1

Вы можете использовать/зарегистрироваться и/зарегистрироваться в GET для визуализации интерфейса. И/signup и/login POST-запросы для обработки

+1

Спасибо @ user29 - есть способ использовать GET-запросы и оставить адрес электронной почты из URL-адреса? –

+2

Нет, для запроса GET вам необходимо пройти электронное письмо по адресу – Bhavana