我知道,这个问题已经被问过很多次了。但是我真的不知道我的代码出了什么问题。如何修复这个输入错误?
我在哪里有一个圆形结构?
我在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
?