TypeError:将循环结构转换为JSON - AWS Lambda



我知道,这个问题已经被问过很多次了。但是我真的不知道我的代码出了什么问题。如何修复这个输入错误?

我在哪里有一个圆形结构?

我在AWS Lambda函数中运行这段代码:

const addRanksToDB = async (tableName, stats) => {
return Promise.all(Object.keys(stats).map(async (slug) => {
const projectSlug = slug;
const rankData = stats[slug];
const messageBody = {
rowId: projectSlug,
table: tableName,
identifier: 'project_slug',
action: 'insert',
payload: {
project_slug: projectSlug,
...rankData,
last_updated: knexClient.fn.now(),
},
};
return sqs.sendMessage({
MessageBody: JSON.stringify(messageBody),
QueueUrl: 'https://sqs.eu-central-1.amazonaws.com/599632852002/handleDataInDBQueue',
}).promise();
}));
};

rankData对象看起来像这样:

{
one_day_volume: 191,
seven_day_volume: 162,
thirty_day_volume: 179,
total_volume: 156,
num_owners: 4,
average_price: 129,
market_cap: 66,
floor_price: 146
}

我得到的错误是:

{
"errorType": "TypeError",
"errorMessage": "Converting circular structure to JSONn    --> starting at object with constructor 'Timeout'n    |     property '_idlePrev' -> object with constructor 'TimersList'n    --- property '_idleNext' closes the circle",
"trace": [
"TypeError: Converting circular structure to JSON",
"    --> starting at object with constructor 'Timeout'",
"    |     property '_idlePrev' -> object with constructor 'TimersList'",
"    --- property '_idleNext' closes the circle",
"    at JSON.stringify (<anonymous>)",
"    at /var/task/src/handlers/stats/webpack:/handlers/stats/rankProjectsByStatsCronjob.js:84:27",
"    at Array.map (<anonymous>)",
"    at v (/var/task/src/handlers/stats/webpack:/handlers/stats/rankProjectsByStatsCronjob.js:67:43)",
"    at Runtime.R [as handler] (/var/task/src/handlers/stats/webpack:/handlers/stats/rankProjectsByStatsCronjob.js:188:23)",
"    at processTicksAndRejections (internal/process/task_queues.js:95:5)"
]
}

错误指向MessageBody: JSON.stringify(messageBody),行。我如何构建我的sqs消息,使我不得到这个错误?

当我试图从axios记录response对象时,我也遇到了同样的问题。我认为这个问题是stats当你使用的方法。您发送的是响应对象还是response.data?