Así que tengo parte de código como este
ruter.get('/', async function (_, res) { const [categories, items] = (await Promise.all([ db.query('SELECT * FROM categories'), db.query('SELECT * FROM inventory'), ])).map(result => result.rows); for (const category of categories) { category.items = items.filter(item => (item.categoryid === category.id)); }Tengo una base de datos donde tengo tablas de categorías de tablas y elementos de tablas y los elementos se ven así:
Lo que no entiendo es qué pasa con las categorías y el inventario en esta parte del código ->
db.query('SELECT * FROM categories'), db.query('SELECT * FROM inventory'), ])).map(result => result.rows);¿Se unen? También en esta parte
category.items = items.filter(item => (item.categoryid === category.id));¿Qué elemento significa aquí, no hay una columna denominada elemento en la tabla de elementos?
¡gracias!
Este
const [categories, items] = (await Promise.all([ db.query('SELECT * FROM categories'), db.query('SELECT * FROM inventory'), ])).map(result => result.rows);Promise.allrows de cada resultado de la consulta y las coloca en las variables de categories y items . No se unen: son dos consultas completamente independientes y se colocan en categories y variables de items separadas.
qué significa el artículo aquí
Con
items.filter(item => items es el resultado de la consulta SELECT * FROM inventory : item es una sola fila de esa consulta.