【发布时间】:2022-01-20 08:07:10
【问题描述】:
我的请求很好,但我想知道如何在 React 中使用我的响应。
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);
}
}
);
};
```
获取计数的前面:
```
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);
```
控制台日志返回:“{COUNT(*): 4}”我怎样才能得到 (4)
【问题讨论】:
-
试试这个
Object.values(count)[0]。或者给count取一个别名,然后访问它。 -
fetchData.data[0]['COUNT(*)']? -
如果您将查询更改为
"SELECT COUNT(*) AS n FROM comments WHERE post_id = ?",那么它应该返回“{n: 4}”,这应该更容易从中获取所需的值。 -
谢谢大家的回答,我用的是:fetchData.data[0]['COUNT(*)'] 我需要学习更多关于数组/对象的 js 课程大声笑
标签: javascript mysql reactjs