Javascript 将循环结构转换为JSON(循环发生在哪里?)
获取错误Javascript 将循环结构转换为JSON(循环发生在哪里?),javascript,node.js,json,stringify,Javascript,Node.js,Json,Stringify,获取错误TypeError:在没有循环引用的对象上将循环结构转换为JSON 我已经在控制台中测试了该对象,并将其字符串化,没有问题。 即使我在将对象传递到POST请求之前对其进行控制台日志记录,我也可以毫无问题地将其字符串化 所以我不明白,在我的节点服务器上,当它将这个错误放入请求时,它会抛出这个错误 我曾经尝试过使用npm包flatted和warn add json stringify safe,这两种方法都没有帮助 这可能是请求本身造成的吗 以下是文件内容: const { inventor
TypeError:在没有循环引用的对象上将循环结构转换为JSON
我已经在控制台中测试了该对象,并将其字符串化,没有问题。
即使我在将对象传递到POST请求之前对其进行控制台日志记录,我也可以毫无问题地将其字符串化
所以我不明白,在我的节点服务器上,当它将这个错误放入请求时,它会抛出这个错误
我曾经尝试过使用npm包flatted
和warn add json stringify safe
,这两种方法都没有帮助
这可能是请求本身造成的吗
以下是文件内容:
const { inventorysource: { API_channel_ID, API_channel_ID_sandbox } } = require("../../config")
const post_order = async (instance, is_production, amount, user_data, res) => {
const assemble_data = {
order: {
order_number: user_data.new_id,
reference_number: user_data.new_id,
ordered_at: String(new Date()),
total_sale_price: amount,
taxes: (amount / (100 + user_data.taxes)) * 100,
notes: `${user_data.first_name} ${user_data.last_name}`,
shipping: {
method: user_data.shipping_info.name,
address: {
name: `${user_data.first_name} ${user_data.last_name}`,
company: user_data.company,
phone: user_data.phone,
email: user_data.email,
address: user_data.address_first,
address2: user_data.address_second,
city: user_data.city,
state: user_data.state,
zip: user_data.zip,
country: user_data.country
}
},
billing: {
address: {
name: `${user_data.billing_data.first_name} ${user_data.billing_data.last_name}`,
company: user_data.billing_data.company,
phone: user_data.billing_data.phone,
email: user_data.billing_data.email,
address: user_data.billing_data.address_first,
address2: user_data.billing_data.address_second,
city: user_data.billing_data.city,
state: user_data.billing_data.state,
zip: user_data.billing_data.zip,
country: user_data.billing_data.country
}
},
dealer: null,
items: user_data.products_data
}
}
const axios_instance = await instance
const stringigied_data = JSON.stringify(assemble_data)
try {
const { data } = await axios_instance.post(
`/channels/${ is_production ? API_channel_ID : API_channel_ID_sandbox }/orders`,
stringigied_data
)
res.send({
data: user_data,
order_data: data,
order_id: user_data.new_id
})
} catch(err) {
res.send(err)
console.log(err)
}
}
module.exports = post_order
我还尝试注释了项:user\u data.products\u data
,以检查是否是由它引起的,但错误仍然存在
我希望POST请求能够顺利通过。我认为它试图转换一个已经是JSON的JSON对象 我将尝试从这里开始检查:
JSON.stringify(assemble_data)
我怀疑循环性存在于
用户数据。产品数据中。我假设您使用的所有其他user\u data.XXX
属性都是字符串。删除对象的一部分,直到您不再看到错误,然后将您的问题减少到一个最小的可重复示例。@shusson我将尝试它,问题是当我console.log它时,我很好地注销了JSON,没有任何问题。“这很奇怪!”舒松在代码下添加了新的注释