Невозможно деструктурировать из event.body

У меня проблема, из-за которой я не могу деструктурировать из event.body.

      exports.handler = async (event, context) => {
    const { items } = event.body;
    const allItems = await getProducts();

    return {
        statusCode: 200,
        body: 'I have charged your card!',
    };
};

Если я посмотрю на event.body, я получу {"items":[{"id":12,"quantity":4}]} но когда я пытаюсь получить элементы из event.body, он всегда возвращается как undefined.

Итак, я считаю, что проблема в моей функции getProducts.

      const getProducts = async () => {
    const categories = [];
    const items = [];
    const r = await fetch(url)
        .then(response => response.json())
        .then(json => FireStoreParser(json))
        .then(json => {
            const documents = json['documents'];
            Object.keys(documents).forEach(function(key) {
                categories.push(documents[key]);

                Object.keys(categories[key]['fields']).forEach(function(key2) {
                    items.push(categories[key]['fields']['items']);
                });
            });
        });

    return items;

Мне нужно получить доступ к каждому идентификатору элементов. Это то, что возвращает getProducts

      [
  [
    {
      price: 220,
      imageUrl: 'https://i.ibb.co/0s3pdnc/adidas-nmd.png',
      name: 'Adidas NMD',
      id: 10
    },
    {
      name: 'Adidas Yeezy',
      price: 280,
      id: 11,
      imageUrl: 'https://i.ibb.co/dJbG1cT/yeezy.png'
    },
    {
      imageUrl: 'https://i.ibb.co/bPmVXyP/black-converse.png',
      price: 110,
      id: 12,
      name: 'Black Converse'
    },
    {
      imageUrl: 'https://i.ibb.co/1RcFPk0/white-nike-high-tops.png',
      id: 13,
      price: 160,
      name: 'Nike White AirForce'
    }
]
]

1 ответ

В моем getProducts мне нужно возвращать items[0], а не просто items.

Затем мне просто нужно это сделать, и я могу получить нужный элемент:

      const cartWithProducts = items.map(({ id, quantity }) => {
        const item = allItems.find(p => p.id === id);
            console.log(item)
    });
Другие вопросы по тегам