@dark_king_13

Сервер не получает данные с клиента, что делать?

С клиента с помощью axios улетает объект с данными пользователя, но на клиенте выводится ошибка:
Server error: Cannot destructure property 'firstname' of 'req.body' as it is undefined.
Код клиента
signup () {
      const newUser = {
        firstname: this.firstname,
        surname: this.surname,
        patronymic: this.patronymic,
        city: this.city,
        university: this.university,
        teacher: this.teacher,
        email: this.email,
        phone: this.phone,
        password: this.password,
        role: this.role,
        projectsCounter: this.projectsCounter
      }
      this.$axios.$post('http://localhost:3000/api/auth/register', newUser).then(
        () => {
          this.error = ''
          this.$router.push('/authorization')
        },
        (err) => {
          this.error = err.response.sata.error
        }
      )
    }

Код сервера
router.post('/register',
  [
    check('email', 'Некоректный email').normalizeEmail().isEmail(),
    check('phone', 'Некоректный номер телефона').isMobilePhone(),
    check('password', 'Минимальный пароль 6 символов').isLength({ min: 6 })
  ],
  async (req, res) => {
    try {
      const errors = validationResult(req)
      if (!errors.isEmpty()) {
        consola.error({ message: `Server error: Некоректные данные при регистрации ${errors.array()}`, badge: true })
        return res.status(400).json({
          errors: errors.array(),
          message: 'Некоректные данные при регистрации'
        })
      }

      const { firstname, surname, patronymic, city, university, teacher, email, phone, password, role, projectsCounter } = req.body
      const findEmail = await User.findOne({ email })
      const findPhone = await User.findOne({ phone })
      if (findEmail || findPhone) {
        consola.error({ message: `Server error: Такой пользователь уже существует`, badge: true })
        return res.status(400).json({ message: 'Такой пользователь уже существует' })
      }
      const hashedPass = await bcrypt.hash(password, 12)
      const user = new User({ firstname, surname, patronymic, city, university, teacher, email, phone, password: hashedPass, role, projectsCounter })
      await user.save()
      return res.status(201).json({ message: 'Вы успешно зарегистрированы' })
    } catch (e) {
      consola.error({ message: `Server error: ${e.message}`, badge: true })
      return res.status(500).json({ message: 'Сервер упал при регистрации' })
    }
  })


Вылетает ошибка в catch
Что с этим делать?
  • Вопрос задан
  • 230 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы