Node.js / 快速在页面之间传递数据而不会弄乱 RESTful 路由

Node.js / Express Passing Data Between Pages Without Messing Up RESTful Routing

我有一个 Express 应用程序,登录页面会邀请人们输入他们的电子邮件地址,然后单击 "Sign Up" 或 "Log In",具体取决于他们是否有帐户。

然后通过 POST 请求将用户带到“/signup”或“/login”,以便可以传递他们输入的电子邮件地址。

但是现在我已经为这两条路线使用了 POST,我必须 POST 到另一个 URL 来处理他们的注册数据或登录凭据,比如app.POST("/注册") 和 app.POST("/输入")。这感觉很草率,而且肯定会扰乱我想要坚持的 RESTful 路由。

我知道我可以通过 GET 请求通过 URL 传递数据,但我也不太喜欢这种解决方案。

在这种情况下最好的方法是什么?我应该只使用 GET 请求并停止这么挑剔吗?还是有其他我还没想到的方法?

谢谢善良的人们!

您可以使用 /signup 和 /login GET 请求进行呈现 UI。和 /signup 和 /login POST 处理请求

我明白为什么您觉得 RESTful 方法很混乱,另一种方法是在客户端存储电子邮件地址,而不是将其发布到服务器 - 直到他们真正注册为止。

您可以使用 LocalStorage Web API 将电子邮件地址存储在客户端浏览器中,然后在用户点击 /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 是永久存储解决方案。