Я получаю следующую ошибку, когда пытаюсь сделать почтовый запрос к моему собственному API typeorm с помощью axios:
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'ClientRequest'
| property 'socket' -> object with constructor 'Socket'
--- property '_httpMessage' closes the circle
at JSON.stringify (<anonymous>)
at stringify (C:\Users\Usuario\Documents\Manga-Api\Manga-Api\node_modules\express\lib\response.js:1123:12)
at ServerResponse.json (C:\Users\Usuario\Documents\Manga-Api\Manga-Api\node_modules\express\lib\response.js:260:14)
at ServerResponse.send (C:\Users\Usuario\Documents\Manga-Api\Manga-Api\node_modules\express\lib\response.js:158:21)
at C:\Users\Usuario\Documents\Manga-Api\Manga-Api\src\managers\scrape.manager.ts:163:33
at processTicksAndRejections (node:internal/process/task_queues:93:5)
Я пытался использовать некоторые библиотеки, чтобы исправить круговую структуру JSON и проанализировать ее, но обе они не удались:
const safeStringify = require('json-stringify-safe');
const CircularJSON = require('circular-json');
Ни для одного из отношений сущностей не добавлена опция каскада.
await axios.post(apiName+'/object', data, { headers: { Authorization: res.req.headers.authorization } }).then(response => { res.send(response); });
Пример данных с объектом, который я хочу сохранить в своей базе данных:
data = {
"response": "Manga created",
"manga": {
"magazine": {
"name": "JUMP SQ.",
"japanName": "ジャンプSQ.",
"website": "https://jumpsq.shueisha.co.jp/sq/",
"releaseDate": "",
"id": 33,
"mangas": [
{
"finished": false,
"id": 91,
"chapter": 312,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 166,
"chapter": 201,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 175,
"chapter": 85,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 202,
"chapter": 95,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 363,
"chapter": 94,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 366,
"chapter": 124,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 456,
"chapter": 46,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 515,
"chapter": 50,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 520,
"chapter": 14,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 567,
"chapter": 14,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 1024,
"chapter": 0,
"state": false,
"published": false,
"updated": false,
"priority": 0
}
]
},
"author": {
"name": "AIMOTO SHOU",
"japanName": "",
"id": 417,
"mangas": [
{
"finished": false,
"id": 456,
"chapter": 46,
"state": false,
"published": false,
"updated": false,
"priority": 0
},
{
"finished": false,
"id": 1024,
"chapter": 0,
"state": false,
"published": false,
"updated": false,
"priority": 0
}
]
},
"languages": [
{
"code": 0,
"name": "Kemono Jihen"
},
{
"code": 1,
"name": "怪物事変"
}
]
}
}
Если я попытаюсь опубликовать этот JSON через Postman, он будет работать правильно. Покупать не по коду, может из-за круговой проблемы с Сущностями
@backtick Вы были правы, я должен был сделать res.send(response.data), а не весь объект ответа. Такой нуб фейл, хахаха, спасибо, братан!!
Как сказал @backtick, я должен был сделать res.send(response.data), а не весь объект ответа. Спасибо
Я пробовал много методов. Наконец, это сработало для меня. Это был не res.send(), это были данные, которые мы передаем. Я передавал просто ответ, но когда я использую response.data, я получил результат. Спасибо
TypeError: круговая структура JSON, начинающаяся с объекта
Удалите это свойство из объекта, который вы хотите вернуть, который вызвал эту ошибку или цикл
Пример:
Удалить объект.свойство в твоем случае Удалить объект.сокет
Я думаю, что
res.send
может ожидать чего-то другого, кроме всего объекта ответа.