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 是永久存储解决方案。
我有一个 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 是永久存储解决方案。