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,没有任何问题。“这很奇怪!”舒松在代码下添加了新的注释