0

Express 응용 프로그램이 있는데 방문 페이지에서 사용자가 전자 메일 주소를 입력 한 다음 "Sign Up"또는 "Log In"을 클릭하여 초대합니다. 계정이 있는지 여부.Node.js/Express 엉망진창없이 페이지 간 데이터 전달 RESTful 라우팅

사용자는 POST 요청을 통해 "/ signup"또는 "/ login"으로 이동하여 입력 한 이메일 주소를 전달할 수 있습니다.

하지만이 두 경로 모두에서 POST를 사용 했으므로 app.POST ("/ register") 및 app.POST와 같은 로그인 정보 또는 로그인 자격 증명을 처리하기 위해 다른 URL로 POST해야합니다. ("/들어가다"). 이것은 상당히 엉성함을 느끼며, 내가 지키고 자하는 RESTful 라우팅을 확실히 뒤범벅합니다.

나는 GET 요청을 통해 URL을 통해 데이터를 전달할 수 있지만 그 해결책도 마음에 들지 않습니다.

이 상황에서 가장 좋은 방법은 무엇입니까? 난 그냥 GET 요청을 사용해야하고 그렇게 까다 롭지 않아야합니까? 아니면 제가 아직 가지고 있지 않은 또 다른 방법이 있습니까?

친절하게 감사드립니다!

답변

1

나는 이것이 RESTful 접근 방식으로 엉망이라고 느끼는 이유를 알 수 있으며, 대체 방법은 전자 메일 주소를 클라이언트 측에 저장하고 서버에 게시하지 않는 것입니다. 그들은 실제로 가입합니다.

LocalStorage 웹 API를 사용하여 이메일 주소를 클라이언트 브라우저에 저장 한 다음 사용자가 /signup 라우트에 도달 할 때로드 할 수 있습니다.

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

이 두 경로에 대한 <script> 태그에있을 것이다 :

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

는 나중에 사용자는 당신이 할 것 /signup 경로를 칠 때.

localstorage는 영구 저장소 솔루션 인 반면 사용자가 브라우저를 닫을 때 지워지는 sessionStorage을 사용할 수도 있습니다.

+0

을 통해 이메일을 보내야합니다. 메가 유용합니다. –

1

렌더링 UI에/가입 및/로그인 GET 요청을 사용할 수 있습니다. 그리고/signup 및/login 처리를위한 POST 요청

+1

감사합니다. @ user29 - GET 요청을 사용하고 URL에서 이메일 주소를 유지할 수있는 방법이 있습니까? –

+2

아니요, GET 요청의 경우 URL – Bhavana