Как преобразовать данные JSON в другой формат из postgres - PullRequest
0 голосов
/ 26 сентября 2018

Прежде всего, я новичок в node.js, и я борюсь с тем, как преобразовать данные JSON из postgres, чтобы они соответствовали тому, что мне нужно вернуть из моего API.Вот код:

function readUsers(req, res, next) {
    console.log('database string is ' + process.env.DB_CONNECTION_STRING);
    var client = new database.Client(process.env.DB_CONNECTION_STRING);
    client.connect();
    console.log(req.body);
    var queryString = `SELECT * from readusersbynamejson(${req.query.user_id}, '${req.query.username}', ` +
                                        `${req.query.limit_count}, ${req.query.offset})`;
    console.log("Executing: ", queryString);
    client.query(queryString, function(err, result) {
        console.log("query complete");

        client.end();

        if (err) {
            console.log("error = ", err);
            return next(err);
        } else {
            console.log("RowCount ", result.rowCount);

            var rowData = [];

            result.rows.map(function(row) {
                try {
                    console.log ("Row Data: ");
                    console.log(row);
                    console.log(row.readusersbynamejson);
                    //console.log("Trying to parse");
                    //row.data = JSON.parse(row.data);
                    console.log("Trying to set to subnode");
                    return row["readusersbynamejson"];
                    rowData[''].push(r)
                    //row.
                    //console.log("Result: " + row);
                } catch (e) {
                    console.log("Exception thrown");
                    console.log(e);
                    row.data = null;
                    return row;
                }

                //return newRow;
            });

            console.log(result.rows);

            res.status(200).json({
                status: 'success',
                //data: result.rows[0].readusersbynamejson,
                data: result.rows,
                message: 'Retrieved all data'
            });
        }
    });
}

Вот что возвращает функция postgres:

{
    "status": "success",
    "data": [
        {
            "readusersbynamejson": {
                "user_id": 3,
                "auth_type": 1,
                "status": 1,
                "user_identity": "user3",
                "username": "mgarcia",
                "email_address": "mgarcia@gmail.com",
                "phone_number": "11234567890",
                "timestamp": 1537846141,
                "image_reference": "",
                "name": null,
                "bio": null,
                "friend_status": 0,
                "friend_status_initiated": 0,
                "post_count": 0
            }
        },
        {
            "readusersbynamejson": {
                "user_id": 2,
                "auth_type": 1,
                "status": 1,
                "user_identity": "user2",
                "username": "jdoe",
                "email_address": "jdoe@gmail.com",
                "phone_number": "11234567890",
                "timestamp": 1537846110,
                "image_reference": "",
                "name": null,
                "bio": null,
                "friend_status": 0,
                "friend_status_initiated": 0,
                "post_count": 0
            }
        }
    ],
    "message": "Retrieved all data"
}

Я действительно хочу удалить имя функции postgres из JSON, но мне может потребоваться изменить другие частиэтогоМожет кто-нибудь дать мне небольшой фрагмент кода о том, как преобразовать JSON?Я боролся с этим в течение нескольких часов, и, очевидно, мне здесь не хватает чего-то фундаментального.

1 Ответ

0 голосов
/ 26 сентября 2018

Примерно так должно работать:

var users = result.data.map(function(x) {
  return x.readusersbynamejson;
});

Еще проще в ES6:

const users = result.data.map(x => x.readusersbynamejson)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...