JSON Ошибка синтаксического анализа: неожиданный идентификатор "Tunnel" в приложении React Native при использовании выборки для отправки запроса на серверную часть - PullRequest
0 голосов
/ 17 июня 2020

Привет, я пытаюсь отправить запросы от своего собственного интерфейса для реагирования на мой nodejs backend API. Будь то запрос на получение или отправку, эта ошибка всплывает случайным образом и очень раздражает. Я протестировал URL-адрес API, который я раскрываю с помощью ngrok, и он отлично работает с почтальоном, поэтому я не могу понять, почему, когда мой интерфейс пытается отправить запрос, он не работает. Иногда это работает, но иногда показывает эту странную ошибку, которую я не могу решить. Очень ценю любую помощь!

JSON Parse error: Unexpected identifier "Tunnel"
 * [native code]:null in parse
 * node_modules/promise/setimmediate/core.js:37:14 in tryCallOne
 * node_modules/promise/setimmediate/core.js:123:25 in setImmediate$argument_0
 * node_modules/react-native/Libraries/Core/Timers/JSTimers.js:146:14 in _callTimer
 * node_modules/react-native/Libraries/Core/Timers/JSTimers.js:194:17 in _callImmediatesPass
 * node_modules/react-native/Libraries/Core/Timers/JSTimers.js:458:30 in callImmediates
 * [native code]:null in callImmediates
 * node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:407:6 in __callImmediates
 * node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:143:6 in __guard$argument_0
 * node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:384:10 in __guard
 * node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:142:17 in __guard$argument_0
 * [native code]:null in flushedQueue
 * [native code]:null in invokeCallbackAndReturnFlushedQueue

Это те места в моем коде, где я использую fetch для отправки запроса, и эта ошибка появляется.

export const authenticate = (username, password) => {
  return async (dispatch) => {
    try {
      const response = await fetch(`${REACT_APP_BACKEND_URL}/api/users/login`, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          username,
          password,
        }),
      });

      if (!response.ok) {
        const errorResData = await response.json();
        const errorId = errorResData.message;
        let message = "Something went wrong!";
        if (errorId === "USERNAME_NOT_FOUND") {
          message = "This username could not be found!";
        } else if (errorId === "INVALID_PASSWORD") {
          message = "This password is not valid!";
        }
        throw new Error(message);
      }

      const resData = await response.json();
      console.log(resData)

      dispatch({
        type: AUTHENTICATE,
        user: resData.user,
      });
    } catch (err) {
      console.log(err) // ERROR HAPPENS HERE
      throw err;
    }
  };
};

1 Ответ

0 голосов
/ 24 июня 2020

Обнаружил ошибку, использовал dotenv для своих переменных env и выяснил, что это произошло из-за того, что мои переменные env не обновлялись, что привело к тому, что URL-адрес туннеля не был найден. Запуск приложения с использованием: expo r - c обновит переменные env и решит проблему.

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