Невозможно деструктурировать из 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)
});