React not loading mysql data - SyntaxError: JSON .parse: неожиданный конец данных в строке 1 столбца 1 данных JSON - PullRequest
0 голосов
/ 09 июля 2020

Я не уверен, где я ошибаюсь. Я пытаюсь извлечь данные из базы данных mysql и отобразить их на странице ответа.

Вот запрос:

static getTopPost(){
   return new Promise((resolve, reject) => {
      pool.query(
         'SELECT * FROM blog_post ORDER BY create_date LIMIT 1',
         function (error, results, fields) {
            if(error) return reject(error);
               resolve(results);
         }
      )
   })
}

Вот и получилось

router.get('/top', (req, res) => {
    const post = req.app.locals.engine.generation.topPost();
    PostTable.getTopPost(post)
        .then(post => console.log(post))
        .catch(error => console.error('error', error));
    res.end();
})

Вот реакция:

fetchPost = () => {
   fetch('http://localhost:3000/post/top')
      .then(response => response.json())
      .then(json => {
         this.setState({ post: json.post})
      })
      .catch(error => console.error('error', error));
}

В терминале я вижу данные (указанные на скриншоте):

Снимок экрана с терминала в IDE

Однако он не появляется, когда я загружаю страницу. Когда я проверяю консоль в Firefox, я получаю следующее сообщение:

error SyntaxError: JSON .parse: неожиданный конец данных в строке 1, столбец 1 JSON данных

Сообщите мне, если потребуется дополнительная информация.

1 Ответ

0 голосов
/ 09 июля 2020

res.end() означает, что вы возвращаете пустой ответ статуса 200. попробуйте ввести res.json() для ответа json и передать данные вашего сообщения в скобках.

...