Я не уверен, где я ошибаюсь. Я пытаюсь извлечь данные из базы данных 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 данных
Сообщите мне, если потребуется дополнительная информация.