當我嘗試從前端呼叫我的 API 時,我遇到了 axios.get() 的問題,它回傳了,但是當我用郵遞員測驗我的后端時它沒問題。
無法獲取 http://localhost:3040/v2/user/[object Object]
請檢查以下代碼:
后端API
router.get(
'/:user_id',
userAuthorization,
async (req, res) => {
const _id = req.params.user_id;
try {
const user = await getUserById({ _id });
if (!user) {
res.status(404).send('User not found!');
}
res.json(user);
} catch (error) {
console.error(error.message);
res.status(500).send('Server error!');
}
}
);
前端
const user_id = useParams();
useEffect(() => {
loadLevels();
adminGetUserById();
}, []);
const adminGetUserById = async () => {
console.log('user id ---> ', user_id);
await axios
.get(`http://localhost:3040/v2/user/${user_id}`)
.then((user) => {
console.log('user res ---> ', user.data);
})
.catch((error) => {
console.log(error.message);
});
};
它在下面回傳結果,API 請求 URL 應該是這樣的http://localhost:3040/v2/user/62aec70881e46a4794b3a424。我不知道為什么它會[object object]在 URL 中回傳。
請檢查下面的影像錯誤結果
https://i.stack.imgur.com/Zrmqd.png
https://i.stack.imgur.com/Ka2gf.png
uj5u.com熱心網友回復:
在發布的影像中,我可以看到日志user_id采用以下格式:
{ user_id: 'your id' }
這意味著useParams();回傳一個帶有屬性的物件user_id。
所以你想要的是提取該屬性。要做到這一點,正如@osmanys-fuentes-lombá提到的,你應該做一些類似的事情:
const { user_id } = useParams();
這應該將值直接分配給 ,user_id而不是創建具有user_id屬性的物件。
uj5u.com熱心網友回復:
要完成@Renato 的答案,變數user_id是一個物件{user_id: '62aec...'}。當 JavaScript 構造字串http://localhost:3040/v2/user/${user_id}時,它會在內部呼叫object.toString()這將導致[object Object],這就是為什么你會看到
無法獲取 http://localhost:3040/v2/user/[object Object]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493320.html
