Как создать вложенный ответ JSON с помощью Node Js

0

Я использую Node.js и My-SQL для создания API для отдыха. Я хочу, чтобы мой ответ был подобен вложенному объекту JSON, который будет легко читать на моем интерфейсе. Я пытался использовать цикл for, но это не дает мне правильного результата, есть ли какие-либо плагины для форматирования этого ответа или есть простой способ сделать этот вложенный ответ JSON.

мой SQL-запрос

var sql ='SELECT comments.comment_id,comments.photo_id,comments.comment_message,comments.comment_date ,tb_users.username as comment_usename,tb_users.first_name as comment_firstname ,tb_users.profile_icon as comment_profile_icon,tb_reply.id,tb_reply.comment_id,tb_reply.photo_id,tb_reply.reply_message,tb_reply.create_date as reply_date,u2.username as r_usename,u2.first_name as r_first_name,u2.profile_icon as r_profile_icon '+
' FROM comments LEFT JOIN tb_reply ON tb_reply.comment_id=comments.comment_id '+
' INNER JOIN tb_users ON tb_users.id=comments.user_id '+
' LEFT JOIN tb_users u2 ON tb_reply.user_id = u2.id '+
' WHERE comments.photo_id= '+photoid+' ORDER BY comments.comment_id DESC LIMIT ' +(pageNo-1)*20+ ', 20 '

и я получаю ответ, как

[
     {
        "comment_id": 20,
        "photo_id": 68,
        "comment_message": "@singh wow   nod.gif   ",
        "comment_date": "2018-06-03T11:12:50.000Z",
        "comment_usename": "[email protected]",
        "comment_firstname": "love",
        "comment_profile_icon": "",
        "id": 1,
        "reply_message": "lol ",
        "reply_date": "0000-00-00 00:00:00",
        "r_usename": "[email protected]",
        "r_first_name": "sud3",
        "r_profile_icon": ""
    },
    {
        "comment_id": 20,
        "photo_id": 68,
        "comment_message": "@singh wow   nod.gif   ",
        "comment_date": "2018-06-03T11:12:50.000Z",
        "comment_usename": "[email protected]",
        "comment_firstname": "love",
        "comment_profile_icon": "",
        "id": 2,
        "reply_message": "lol hahahhaha . ",
        "reply_date": "0000-00-00 00:00:00",
        "r_usename": "[email protected]",
        "r_first_name": "sud4",
        "r_profile_icon": ""
    },
    {
        "comment_id": 20,
        "photo_id": 68,
        "comment_message": "@singh wow   nod.gif   ",
        "comment_date": "2018-06-03T11:12:50.000Z",
        "comment_usename": "[email protected]",
        "comment_firstname": "love",
        "comment_profile_icon": "",
        "id": 3,
        "reply_message": "r2t3s",
        "reply_date": "2018-06-01T18:42:49.000Z",
        "r_usename": "[email protected]",
        "r_first_name": "love",
        "r_profile_icon": ""
    },

но мне нужно

[
    {
        "comment_id": 20,
        "photo_id": 68,
        "comment_message": "@singh wow   nod.gif   ",
        "comment_date": "2018-06-03T11:12:50.000Z",
        "comment_username": "[email protected]",
        "comment_first_name": "love",
        "comment_profile_icon": "",
        "reply" [
            {
                "id": 1,
                "reply_message": "lol ",
                "reply_date": "0000-00-00 00:00:00",
                "r_usename": "[email protected]",
                "r_first_name": "sud",
                "r_profile_icon": ""
            },
            {
                "id": 2,
                "reply_message": "lol hahahhaha . ",
                "reply_date": "0000-00-00 00:00:00",
                "r_usename": "[email protected]",
                "r_first_name": "sud4",
                "r_profile_icon": ""
            },
            {      
                "id": 3,
                "reply_message": "r2t3s",
                "reply_date": "2018-06-01T18:42:49.000Z",
                "r_usename": "[email protected]",
                "r_first_name": "love",
                "r_profile_icon": ""
            }
        ]
    }
}
Теги:
express

1 ответ

0
  1. Запрос 1-го шага по всем комментариям делает его равным результату переменного вызова
  2. Для цикла в массиве результатов вызовите запрос для загрузки всех ответов с внешним ключом в комментарий и сохраните результаты в виде результата [x].reply

Ещё вопросы

Сообщество Overcoder
Наверх
Меню