индексировать результаты двух запросов в одном массиве, используя expressjs mysql, nodejs - PullRequest
0 голосов
/ 22 февраля 2019

У меня вопрос, как мне сформировать такой результат

[
  {
    "id_user": 1,
    "name": "foo",
    "last_name": "bar",
    "id_rol": {
        "id_rol": 1,
        "rol_name": "admin"
    }
},
{
    "id_user": 2,
    "name": "foo2",
    "last_name": "bar2",
    "id_rol": {
        "id_rol": 2,
        "rol_name": "reporter"
    }
}

]

, учитывая, , что у меня два запроса: один пользователь и другая роль пользователи

[
{
    "id_user": 1,
    "name": "foo",
    "last_name": "bar",
    "id_rol": 1

}]

rols

[
{
    "id_rol": 1,
    "rol_name": "foo"
}

]

в основном мне нужносформировать объект с id_rol, rol_name вместо id, спасибо за помощь

1 Ответ

0 голосов
/ 23 февраля 2019

В этом коде предполагается, что пользователи имеют только одну роль.Также предполагается, что в списке ролей всегда есть роль пользователя.

В основном, перебирайте пользователей.Для каждого пользователя получите свой ролевой идентификатор.Используйте идентификатор роли, чтобы отфильтровать подходящую роль и назначить ее объекту пользователя.

function mapRoleToUsers(users, roles) {
    for(let user of users) {
        let userRoleId = user.id_rol
        let userRole = roles.filter((role)=>{return role.id_rol == userRoleId})
        user.id_rol = userRole[0]
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...