Uncaught (в обещании) SyntaxError: Неожиданный токен <в JSON в позиции 0 |MongoDB> Express> React.js - PullRequest
0 голосов
/ 17 мая 2019

Я использую MongoDB, Node, Express и React.js. Я не могу получить данные с моего сервера node.js на мой клиентact.js. Это ошибка у меня: Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0. Я знаю, что это очень распространенная ошибка, но ни одно из найденных решений не представляется актуальным для моего контекста.

Вот строка package.json, где инициализирован мой прокси:

"proxy": "http://localhost:5000",

Вот моя экспресс-маршрутизация:

  app.get('/main-data', (req, res) => {
    MongoClient.connect(connectionURL, {
      useNewUrlParser: true,
    }, (error, client) => {
      if(error){
        return console.log("Unable to connect to the db.");
      }
      const db = client.db(databaseName);

        db.collection("metadata_from_bot")
        .find()
        .toArray((error, data) => {
          console.log(data);
          res.json(data);
        });
    })
    res.json({hello: "world"})
})

Вот моя реакция:

  componentDidMount() {
    fetch('/main-data')
      .then(res => res.json())
      .then(data => this.setState({ data }));
  }

Когда я перехожу к http://localhost:5000/main-data, я получаю следующий вывод:

enter image description here

Когда я проверяю вкладку сети, вот что у меня есть: Status Code: 304 Not Modified.

enter image description here

Однако, когда я нажимаю на ссылку (http://localhost:3000/main-data) на вкладке сети, я получаю сообщение об ошибке.

enter image description here

Данные должны быть установлены в состояние, но теперь я не могу получить их в формате JSON.

1 Ответ

0 голосов
/ 17 мая 2019

Я не уверен, но вы не должны использовать хост в fetch

 componentDidMount() {
    fetch('http://localhost:5000/main-data')
      .then(res => res.json())
      .then(data => this.setState({ data }));
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...