Преобразование круговой структуры в JSON (где происходит циркуляция?) - PullRequest
0 голосов
/ 10 апреля 2019

Получение ошибки TypeError: Converting circular structure to JSON для объекта, который не имеет циклических ссылок.

Я проверил объект в консоли и получил его без проблем. Даже когда я консоль записываю в журнал объект перед передачей его в запрос POST, я получаю его без проблем.

Так что я не понимаю, что на моем Node-сервере он выдает эту ошибку, когда попадает в запрос.

Я пытался использовать пакеты npm flatted и yarn 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

Я также пытался закомментировать items: user_data.products_data, чтобы проверить, может ли это быть причиной, но ошибка все еще сохраняется.

Я ожидаю, что запрос POST пройдет без проблем.

1 Ответ

0 голосов
/ 10 апреля 2019

Я думаю, что он пытается преобразовать объект JSON, который уже является JSON.

Я постараюсь проверить отсюда вверх:

JSON.stringify(assemble_data)
...