от
Я осуществляю регистрацию пользователей. У меня есть два маршрута.
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
        });
    }
});
Мне нужно отправить данные с маршрута, регистрации пользователя, на маршрут, подтверждение пользователя. Как отправить данные пользователя на второй маршрут для подтверждения?              

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

2 Ответы

0 голосов
от
Есть 2 стратегии для реализации этой функции (возможно, больше): Стратегия 1: Сохраните
user
на сервере. Вы можете сохранить объект
user
и назначить ему уникальный ключ (например, uuid) на сервере. Данные
user
могут храниться в виде глобальной переменной (в памяти процесса Node.js) или в базе данных памяти (например, Redis), если вы используете несколько процессов Node.js. В обработчике маршрута
POST /signup
данные
user
могут быть записаны на сервер, и этот вновь созданный идентификатор пользователя будет возвращен браузеру. Затем в обработчике маршрута
POST /verify
сервер получит соответствующие данные пользователя через свой идентификатор. Стратегия 2: Хранить
user
в браузере. Другая стратегия - возвращать все данные
user
в браузер в обработчике маршрутов
POST /signup
и разрешать браузеру отправлять их обратно в следующем запросе
POST /verify
. Есть 2 способа реализовать этот дизайн (возможно, больше): Верните данные
user
в браузер через
Set. Браузер будет отправлять пользовательские данные в виде куки автоматически.
Верните данные user
в браузер в виде простого тела ответа. Браузер возьмите его и сохраните в localStorage или sessionStorage. Затем при отправке запроса
POST /verify
браузер считывает эти данные и помещает их как простое тело HTTP-запроса.     
0 голосов
от
Лучший способ достичь этого - сохранить пользовательские данные в виде файла cookie браузера. Хранение пользовательских данных в локальном хранилище не рекомендуется, так как к ним может обращаться JavaScript, и, следовательно, представляет угрозу безопасности.     
...