我知道之前曾詢問過此錯誤訊息,但我不相信其他解決方案對我有用。
我正在嘗試構建一個后端快速服務器來處理 React 應用程式的 API 呼叫。我撰寫了一個getData()函式來執行此操作,由 anapp.post()用于將其發送到前端。
該錯誤僅在使用 res.send() 時彈出,例如我的 API 呼叫有效,只是在發送時中斷。
這是相關的代碼:
const getData = async route => {
const config = {
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Content-Type': 'application/json;charset=utf-8'
}
}
let corrRoute = route[0] == '/' ? route : '/' route
return await axios(`${URL}${corrRoute}?api_key=${API_KEY}`, config)
}
app.post('/api', async (req, res) => {
let { route } = req.body
res.send(await getData(route))
})
如果我res.send用console.log它替換最后的列印出來的效果非常好。錯誤是在服務器的 index.js 檔案中產生的,而不是在 React 應用程式中。
這是完整的錯誤文本:
[server] (node:9680) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
[server] --> starting at object with constructor 'ClientRequest'
[server] | property 'socket' -> object with constructor 'TLSSocket'
[server] --- property '_httpMessage' closes the circle
[server] at JSON.stringify (<anonymous>)
uj5u.com熱心網友回復:
Axios 回傳的不僅僅是您想要的資料。它回傳一個回應物件,warts 和所有,這將被解釋為這樣。你正在發送那個回應物件。它與 res.send(res) 相同(除了它是不同的回應物件)。
為了從 Axios 獲取實際資料,您需要更改以下行:
return await axios(`${URL}${corrRoute}?api_key=${API_KEY}`, config)
到
const data = await axios(`${URL}${corrRoute}?api_key=${API_KEY}`, config);
return data.data;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/371262.html
標籤:javascript 节点.js 表达 公理
