首页 > 解决方案 > 更改 knex.js json 输出的格式

问题描述

我的节点应用程序中有这个:

const query = db_connect.sequelize.knex.select([
      'managers.id',
      'managers.managername',
      'managers.email',
      'teams.teamname',
      'teams.id',
      db_connect.sequelize.knex.raw('COUNT(employees_managers.id)'),
    ]).from('managers')
      .leftJoin('employees_users', 'managers.id', 'employees_managers.managers_id')
      .leftJoin('teams_managers', 'managers.id', 'teams_managers.managers_id')
      .leftJoin('teams', 'teams.id', 'teams_managers.teams_id')
      .groupByRaw('managers.id, managers.managername, managers.email, teams.teamname');

它产生这个:

{
    "managers": [
        {
            "id": 1,
            "name": "John Doe",
            "email": "johndoe@email.com",
            "teamname": "Team 1",
            "count": 2
        },
        {
            "id": 1,
            "name": "John Doe",
            "email": "johndoe@email.com",
            "teamname": "Team 2",
            "count": 2
        }
    ]
}

我想改变它的结构看起来像这样:

{
    "managers": [
        {
            "id": 1,
            "name": "John Doe",
            "email": "johndoe@email.com",
            "teams": [
                {
                    "id": 1,
                    "name": "Team 1",
                    "TeamsManagers": {
                        "id": 1,
                        "managerId": 1
                    }
                },
                    {
                        "id": 1,
                        "name": "Team 2",
                        "TeamsManagers": {
                            "id": 1,
                            "managerId": 1
                        }
                    }
            ]
        }
    ]
}

如何更改 knex 响应的结构以以上述格式显示?我曾尝试查看 bookeself.js,但不确定这是否是该工作的正确工具。

标签: javascriptnode.jsjsonknex.js

解决方案


推荐阅读