Почему Ax ios выбрасывает 500 ошибок в улове? - PullRequest
1 голос
/ 10 марта 2020

У меня есть бэкэнд Graphql Express. Я проверил запрос, используя localhost: 3001 / graphql.

Мой запрос Axe ios внешнего интерфейса выглядит так:

export const login = (formData, setUser, setLoading) => {
  setLoading(true)
  axios.post('', {
    variables: {
      email: formData.email,
      username: formData.username,
      password: formData.password,
    },
    query: `
      query Login(${formData.email ? `$email: String!` : `$username: String!`}, $password: String!) {
        login(${formData.email ? `email: $email` : `username: $username`}, password: $password) {
          _id
          token
          token_expiry
          logged_in_at
          geolocation
          name
          username
          email
          bio
          profile_img
          dark_mode
        }
      }
    `
  }).then(res => {
    if (res.data.errors) {
      process.env.NODE_ENV === 'development' && console.log(res.data.errors[0].message)
    } else {
      const userData = {...res.data.data.login, geolocation: JSON.parse(res.data.data.login.geolocation)}
      setUser(logInSuccess(userData))
    }
    setLoading(false)
  }).catch(err => {
    process.env.NODE_ENV === 'development' && console.log(err)
    setLoading(false)
  })
}

Моя проблема заключается в следующем:

  • Когда я проверяю этот запрос, используя localhost: 3001 / graphql с правильным паролем, я получаю ответ 200 с моими данными.

  • Когда я проверяю этот запрос с использованием localhost: 3001 / graphql с неверным паролем, я получаю нужную ошибку, которая возвращается в res.data.errors. Эта ошибка выдается, когда bcrypt.compareSyn c возвращает false.

  • Когда я делаю этот запрос в веб-интерфейсе с правильным паролем, я получаю ответ 200 с данными моего ответа.

--- Когда Я делаю этот запрос во внешнем интерфейсе с неверным паролем. Я получаю ошибку 500 в .catch! Что мне здесь не хватает?

Вещи, которые я пробовал:

Я пытался удалить троицу из запроса, чтобы она работала для простой комбинации email и пароля.

Это ошибка 500:

Error: Request failed with status code 500
    at createError (createError.js:17)
    at settle (settle.js:19)
    at XMLHttpRequest.handleLoad (xhr.js:60)
    at XMLHttpRequest.onreadystatechange (<anonymous>:1:807)
...