【问题标题】:Add object to MySQL Result row (RowDataPacket) in nodejs在nodejs中将对象添加到MySQL结果行(RowDataPacket)
【发布时间】:2018-12-26 22:59:22
【问题描述】:

我需要在 mysql 结果对象中添加一个附加字段,然后再将其发送到前端。 (在我的例子中是 .ejs)

这是我的mysql结果行:

RowDataPacket{ agent_id: 1,name: 'John', email: 'johndoe@gmail.com', mobile: 000000 }

我需要在这个 mysql 行对象中添加:{'Key': 'value'}

【问题讨论】:

    标签: javascript mysql node.js json


    【解决方案1】:

    以下方法对我有用。希望这会对某人有所帮助。

              for(var o = 0;o < rows.length;o++){
                    var j = JSON.parse(JSON.stringify(rows[o]));
                    var names = Object.keys(j);
                    var vals = Object.keys(j).map(function(_) { return j[_]; });
                    names.push('Key');
                    vals.push('Value');
                    var jObj = {};
                    names.forEach(function(k,i){
                        jObj[k] = vals[i];
                    });
                    console.log(jObj);
                }
    

    【讨论】:

    • 我想知道是否需要深度克隆。您确定无法对原始对象进行编辑吗?
    • @obfish 我不太确定是否需要深度克隆。但我无法将值推送到原始对象。
    • 如果你确定RowDataPacket 是平的(我猜MySQL 数据是),你可以试试Object.assign({'Key': 'value'}, rawDataPack)。我没有基准,但我相信它应该更快。
    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2018-10-14
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    相关资源
    最近更新 更多