Не получается в Фронтенд вывести значение которое принял из бд в Бэкенде
Бэкенд
connection.execute("SELECT `Dragons` FROM users", function(err, results){
console.log(err)
console.log(results)
const ggs = results
app.get('/back', (req, res) => {
res.json({
ggs
})
})
})
Данные получаются из БД mysql и отображаются как
{"ggs":[{"Dragons":7842}]}
в консоли бэкенда. Я так понимаю Фронт принимает но не знает как отобразить такой объект.
Фронтенд
const [steng, setData] = useState(null)
useEffect(() => {
fetch('/back')
.then(response => response)
.then(response => setData(response.ggs))
},[])
return(
<div className="Menu">
<div className="Info_Bar" onClick={ClickedInfo}></div>
<div className="Dragons">Famously dynasty:{steng}</div>
Ответы (2 шт):
Сначала идет инициализация роута, потом идет выборка данных.
app.get('/back', (req, res) => {
connection.execute("SELECT `Dragons` FROM `users`", (err, results) => {
if (err) {
res.status(500).send(err);
return;
}
res.json({
ggs: results
});
});
});
На фронте обязательно проверьте статус код (должен быть 200) и сделайте десериализацию
const [steng, setData] = useState(null)
useEffect(() => {
fetch('/back')
.then(response => response.json())
.then(response => setData(response.ggs))
}, [])
return(
<div className="Menu">
<div className="Info_Bar" onClick={ClickedInfo}></div>
<div className="Dragons">Famously dynasty:{steng}</div>
И так я продвинулся, добавил cors
, добавилJSON.stringify(results);
В итоге получаю строку в виде массива json на фронте: [{\"Dragons\":999999}]
. Вопрос в чем, мне нужно показать только данные из столбца Dragons т.е значение 999999 а не весь json массив. Искал в инете пока не нашел ответа.
Получил желаемый результат! [{\"Dragons\":999999}]
из этой строки срезал сначала и конца. Знаю что максимально убого пока что, учусь.....