mi solicitud es buena pero quiero saber cómo puedo usar mi respuesta en React.
Solicitud SQL:
``` exports.countAllComments = async (req, res) => { const pId = req.params.id; db.query( "SELECT COUNT(*) FROM comments WHERE post_id = ?", [pId], (err, count) => { if (err) { res.status(500).json({ err }); console.log(err); } else { console.log(count) res.status(200).json(count); } } ); }; ```
Frente para el conteo de recuperación:
``` const [countData, setCountData] = useState(0); useEffect(() => { const fetchCount = async () => { try { const fetchData = await Axios.get( `http://localhost:3001/api/post/comment-count/${post.id}`, { headers: { Authorization: `Bearer ${test1.token}` }, } ); setCountData(fetchData.data[0]); } catch (err) {} }; fetchCount(); }, [post.id, test1.token]); console.log(countData); ```
retorno de registro de la consola: "{COUNT(*): 4}" ¿cómo puedo obtener (4)
dado su ejemplo trivial, la solución trivial sería algo así como:
fetchData.data[0]['COUNT(*)']
sin embargo, realmente debería pensar en el contrato en la API y hacer cumplir un cierto tipo de retorno de su API, y no simplemente devolver la respuesta de la consulta SQL. es decir, su API posiblemente podría devolver un objeto como -
{ count: x }
donde depende de su API transformar el resultado de la consulta SQL de una manera que satisfaga el contrato, de esa manera su cliente React se desconecta de su capa de base de datos y solo se preocupa por su contrato de API.
De esa manera, su lado del cliente se convierte en algo como:
fetchData.data.count
que no se rompería si la consulta se actualizara de alguna manera, etc.