Как я могу перенести данные с одного маршрута на другой - PullRequest
1 голос
/ 04 июля 2019

Я осуществляю регистрацию пользователей. У меня есть два маршрута.

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 ]

2 голосов
/ 04 июля 2019

Существует 2 стратегии для реализации этой функции (возможно, и больше):

Стратегия 1: хранить user на сервере.

Вы можете сохранить userобъект и назначьте ему уникальный ключ (например, uuid) на сервере.Данные user могут храниться в виде глобальной переменной (в памяти процесса Node.js) или в базе данных памяти (например, Redis), если вы используете несколько процессов Node.js.

InPOST /signup обработчик маршрута, данные user могут быть записаны на сервер, и этот вновь созданный идентификатор пользователя будет возвращен в браузер.Затем в обработчике маршрута POST /verify сервер получит соответствующие данные пользователя через свой идентификатор.

Стратегия 2: Сохранение user в браузере.

Другая стратегиявернуть все данные user в браузер в обработчике маршрута POST /signup и позволить браузеру отправить их обратно в следующем запросе POST /verify.Есть 2 способа реализовать этот дизайн (возможно, больше):

  • Возвращать user данные в браузер через Set-Cookie.Браузер автоматически отправляет данные пользователя в виде файла cookie.

  • Возвращает данные user в браузер в виде простого тела ответа.Браузер возьмите его и сохраните в localStorage или sessionStorage.Затем при отправке запроса POST /verify браузер считывает эти данные и помещает их в виде простого HTTP-запроса.

0 голосов
/ 04 июля 2019

Лучший способ добиться этого - сохранить пользовательские данные в виде файла cookie браузера.Хранение пользовательских данных в локальном хранилище не рекомендуется, так как к ним может получить доступ JavaScript, и, следовательно, представляет угрозу безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...