node.js - 如何将数据从一条路线传输到另一条路线
问题描述
我实现了用户注册。我有两条路线。
import express from 'express';
import User from '../models/user';
const router = express.Router();
router.post('/signup', async (req, res) => {
try {
...
const user = new User(
red.body.name,
red.body.username,
red.body.user_email,
red.body.user_password,
red.body.user_phone,
);
...
} catch (err) {
return res.status(500).json({
err: err
});
}
});
router.post('/verify', async (req, res) => {
try {
...
console.log(user);
...
} catch (err) {
return res.status(500).json({
err: err
});
}
});
我需要从路线发送数据,用户注册,到路线,用户确认。
如何将用户数据发送到第二条路由进行确认?
解决方案
实现此功能有两种策略(可能更多):
策略1:存储user
在服务器中。
您可以在服务器中存储user
对象并为其分配一个唯一键(例如 uuid)。user
数据可以存储为全局变量(在 Node.js 进程的内存中),或者如果您使用多个 Node.js 进程,它可以存储在内存数据库(例如 Redis)中。
在POST /signup
路由处理程序中,user
可以将数据写入服务器,并将这个新创建的用户 ID 返回给浏览器。然后,在POST /verify
路由处理程序中,服务器将通过其 id 检索相应的用户数据。
策略2:存储user
在浏览器中。
另一种策略是在路由处理程序中将整个user
数据返回给浏览器POST /signup
,并让浏览器在以下POST /verify
请求中将其发送回。有两种方法可以实现这个设计(也许更多):
通过 将数据返回
user
给浏览器Set-Cookie
。浏览器会自动将用户数据作为 cookie 发送。user
将数据作为纯响应正文返回给浏览器。浏览器将其保存在 localStorage 或 sessionStorage 中。然后,在发送POST /verify
请求时,浏览器会读取该数据并将其作为纯 HTTP 请求正文。
推荐阅读
- pytorch - PyTorch 转换改变维度
- c# - IIS 停止响应请求,直到运行此方法后重新启动
- c# - 当浏览器中的页面位于 /Identity/Account/Register 时如何修复空的 href 属性
- c# - 传递对象列表在 Web API 核心中不起作用
- css - 光滑的滑块导航在某个断点处显示的项目少于预期的项目
- javascript - TypeError: this.props.ajouterRecette 不是函数
- c# - 为什么 API 网关中的 Task.WhenAll、RestSharp 和 Async-Await 性能不佳?
- ruby-on-rails - ActiveStorage rails : 限制上传文件的数量
- python - numpy polyfit 不能正确拟合抛物线
- blazor - 是否可以在 Blazor 中使用 Bing 或 Google Maps API?