Node.js 如何将数据从一条路由传输到另一条路由

Node.js 如何将数据从一条路由传输到另一条路由,node.js,express,Node.js,Express,我实现了用户注册。我有两条路线 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,

我实现了用户注册。我有两条路线

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
对象,并在服务器中为其分配唯一的密钥(例如uuid)。
用户
数据可以作为全局变量存储(存储在Node.js进程的内存中),如果您使用多个Node.js进程,也可以存储在内存数据库(例如Redis)中

POST/signup
路由处理程序中,可以将
user
数据写入服务器,并且新创建的用户id将返回到浏览器。然后,在
POST/verify
路由处理程序中,服务器将通过其id检索相应的用户数据

策略2:在浏览器中存储
用户

另一种策略是将整个
用户
数据返回到
POST/signup
路由处理程序中的浏览器,并让浏览器在以下
POST/verify
请求中将其发送回。有两种方法可以实现此设计(可能更多):

  • 通过
    设置Cookie
    用户
    数据返回浏览器。浏览器将自动以cookie的形式发送用户数据

  • 用户
    数据作为普通响应主体返回浏览器。浏览器获取并保存在本地存储或会话存储中。然后,当发送
    POST/verify
    请求时,浏览器将读取该数据并将其作为普通HTTP请求主体


    • 实现这一点的最佳方法是将用户数据存储为浏览器cookie。不建议将用户数据存储在本地存储中,因为JavaScript可以访问这些数据,因此会造成安全威胁