我的目标只是返回属于该用户的投诉。
我在 MongoDB 中有两个集合。用户和投诉。一名用户有一项投诉,另一名用户有两项投诉。
我正在使用 Redux 创建一个初始状态为 userComplaints: null
。
对于它的减速器,我写: onlyUserComplaints: (state, { Payload }) => { state.userComplaints = Payload; localStorage.setItem('userComplaints', JSON.stringify(payload)); },
这是该操作的相关代码,`const config = { 标题:{ '内容类型':'应用程序/json', }, };
const data = await axios.get( `http://localhost:5000/api/complaint/gettingusercomplaints/${userId}`, config ); dispatch(onlyUserComplaints(data))`
我的路线可以在 Postman 中找到,如下:`const getAllUserComplaints = asyncHandler(async (req, res) => { 尝试 { const userId = req.params.id;
const userComplaints = await Complaint.find({ userId }); res.status(201).json(userComplaints);
} 捕获(错误){
throw new AppError(出现问题
, 404);
}
});`
对于这条路线,我有一个类似的获取所有投诉,它成功返回了三个投诉。相关代码是,constcomplaint=awaitComplaint.find({});
我尝试将 find 替换为 findById,但当只想获取给定用户的投诉时,在 Postman 中失败了。
看看实际的错误:
所以,这是我不明白的地方。数据在 Postman 中填充得很好。但是,当我 console.log(userComplaints) 返回的数据时,它的类型不是对象,就像我查询 find({})...当我询问所有投诉时一样。
这里有更多信息:
有什么想法吗?
但是邮差说没问题。
Lanxion 在 Discord 上指出,我没有解构响应中的数据,因此在标头中获取了其他内容,例如选项。
const {数据} = axios...