Ответы пользователя по тегу MongoDB
  • Как вывести данные пользователя в Node js + Express, MongoDB?

    kiidii_aniname
    @kiidii_aniname
    Node.JS Developer
    Ну смотри, я думаю совет, посмотреть в ютубе тебя не интересует, но вкратце вот алгоритм:

    Регистрация:
    1) Фронт отправляет на бэк POST запрос с данными, которые ввел юзер.
    2) Бык выносит данные пользователя в отдельную переменную(к примеру user), т.к. нужно будет с этими данными в будущем работать и желательно это делать в отдельной переменной.
    3) Бэк проверяет данные на валидность, например, что нет не нужных символов в пароле, или что почта валидная
    4) Бэк с помощью bcryptjs шифрует пароль юзера и заменяет то, что ввёл юзер, на то, что выдаёт модуль bcryptjs (помните, что меняем только данные в созданной переменной (к примеру user), а не данные, которые которые прилетели POST запросом)
    5) Бэк генерирует accessToken и сохраняет в нашу переменную с данными юзера (к примеру user) (можно тот-же bcryptjs для этого конечно юзать, но в будущем советую поискать что-то ещё)
    6) Бэк отправляет запрос на монго, чтобы сохранить юзера в базе данных
    7) Бэк отправляет на фронт accessToken юзера, который нужно сохранить в куки


    Теперь, что касается получения данных:
    1) Фронт отправляет на бэк GET запрос получения данных юзера. При этом отправляя куки, которые мы сохранили ранее
    2) Бэк отправляет запрос в монгу, на поиск юзера по accessToken в базе данных
    3) Бэк возвращает на фронт данные юзера полученные из монги
    4) Фронт эти данные показывает юзеру


    Что касается авторизации:
    1) Фронт отправляет POST запрос на бэк с введёнными юзером email и паролем.
    2) Бэк отправляет запрос в монгу, на поиск юзера по email
    3) Бэк с помощью bcryptjs.compareSync() проверяет совпадают ли пароль полученные из базы данных с тем, что ввёл юзер
    4) Бэк возвращает на фронт accessToken юзера, который нужно сохранить в куки


    Несколько замечаний:
    1) email должен быть уникальным, двух юзеров с одним email быть не должно, поэтому если вы используете mongoose - укажите "unique: true" в схеме юзера
    Пример:
    const userSchema = new Schema({
      email: {
        type: String,
        unique: true,
      }
    });


    2) mongoose вам очень поможет во взаимодействии с MongoDB

    Вопросы есть?
    Ответ написан