javascript — вложенный ответ Json от NodeJs и MySql

Вложенный ответ Json от NodeJs и MySql

У меня есть 3 таблицы Mysql, таблица поставщиков со списком поставщиков, таблица категорий со списком категорий, которые есть у этих поставщиков в этих магазинах, таблица категорий связана с таблицей поставщиков с помощью вторичного ключа (vendor_id), т.е. также есть таблица продуктов, в которой есть все продукты этих категорий, и она связана с таблицей категорий с помощью внешнего ключа (category_id). Как мне написать NodeJs / экспресс-маршрут, который возвращает объект json, который выглядит так,

  { "id": 1, "vendor": "Food place", "category": "Chicken"[ { "id": "1, "name": "Fried chicken", "price": "100" }, { "id": "2, "name": "Soup Chicken", "price": "150" } } 

Таким образом, объект json возвращает поставщику все категории, которые у него есть, и внутри категорий все продукты, относящиеся к этим категориям.

Таблицы выглядят аналогично таблице Vendor:

  ---------- -------------- ------ ----- --------- ----------------  | Field | Type | Null | Key | Default | Extra |  ---------- -------------- ------ ----- --------- ----------------  | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | category | varchar(255) | NO | | NULL | |  ---------- -------------- ------ ----- --------- ----------------  

Таблица категорий:

  ----------- ------------- ------ ----- --------- ----------------  | Field | Type | Null | Key | Default | Extra |  ----------- ------------- ------ ----- --------- ----------------  | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | vendor_id | int(11) | NO | MUL | NULL | |  ----------- ------------- ------ ----- --------- ----------------  

Таблица продуктов:

  ----------------- --------------- ------ ----- --------- ----------------  | Field | Type | Null | Key | Default | Extra |  ----------------- --------------- ------ ----- --------- ----------------  | id | int(11) | NO | PRI | NULL | auto_increment | | price | decimal(10,0) | NO | | NULL | | | name | varchar(255) | YES | | NULL | | | category_id | int(11) | YES | MUL | NULL | |  ----------------- --------------- ------ ----- --------- ----------------  
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector