javascript - 来自 NodeJs 和 MySql 的嵌套 Json 响应

标签 javascript mysql node.js express

我有3个Mysql表,一个包含 vendor 列表的 vendor 表,一个包含这些 vendor 在商店中拥有的类别列表的类别表,类别表使用辅助键(vendor_id)链接到 vendor 表),我还有一个产品表,其中包含这些类别中的所有产品,并且它使用外键(category_id)链接到类别表。我如何编写一个 NodeJs/express 路由来返回一个如下所示的 json 对象,

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

因此 json 对象返回 vendor 他们存储的所有类别,以及类别内所有属于这些类别的产品

表格看起来与此类似 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    |                |
+-----------------+---------------+------+-----+---------+----------------+

最佳答案

路线

export const route = (router: any) => {
    return router.get('/your_route_here', (req: any, res: any) => {
        // do your logic here
    });
}

export default route;

关于javascript - 来自 NodeJs 和 MySql 的嵌套 Json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58432229/

相关文章:

javascript - 为两个对象设置动画时仅触发一次回调

MySQL insert, update-heavy, 按索引排序

php - 在两个表中一次更新多行

PHP/MySQL : Values in a select box associate to values in associative array

node.js - 如何从 Azure WebJobs 调用 EasyAPI?

javascript - 如何在 javascript 中将对象转换为自定义字符串?

javascript - Passport JS 和 Auth0 之间有什么关系?

javascript - 我在 fragment 中有一个复选框,我希望它在单击注册按钮时发布一些数据这个按钮在我的主要 Activity 中?

node.js - 当我发出邮寄请求时, postman 挂起。发布请求 注册工作正常,但登录不行

node.js - 合并NodeJS流时如何调用 `setMaxListeners`