【问题标题】:Node MySQL - Edit response before sending节点 MySQL - 发送前编辑响应
【发布时间】:2017-09-17 03:22:05
【问题描述】:

我正在使用NodeMySQL。我正在从 Node 中的 MySQL 中提取数据,如下所示:

app.get('/getposts', (req, res) => {
   connection.query("SELECT * FROM posts", function(err, rows, fields){
        if(err){
            console.log(err);
        }
        else if(rows.length) {
            res.send(rows)             // <= Edit this res before sending.
        }
        else {
            res.send('No Posts')
        }
    });
});

我收到以下回复:

[
 {id:1, name:'post1', desc: 'post1 desc' },
 {id:2, name:'post2', desc: 'post2 desc' },
 {id:3, name:'post3', desc: 'post3 desc' }
]

我想在发送前编辑回复。我希望id 成为keyvalue 成为post。喜欢 1 我想要1:{id:1, name:'post1', desc: 'post1 desc'}。所以整个响应应该是这样的:

[
  1: {id:1, name:'post1', desc: 'post1 desc' },
  2: {id:2, name:'post2', desc: 'post2 desc' },
  3: {id:3, name:'post3', desc: 'post3 desc' }
]

我怎样才能做到这一点?非常感谢。

【问题讨论】:

    标签: javascript mysql node.js express


    【解决方案1】:

    你需要这样的东西,

    var jsonObj = [
        {id:1, name:'post1', desc: 'post1 desc' },
        {id:2, name:'post2', desc: 'post2 desc' },
        {id:3, name:'post3', desc: 'post3 desc' }
    ];
    
    var keyArr = [];
    
    for(var index in jsonObj){
        var obj = {};
        obj[jsonObj[index].id] = jsonObj[index];
        keyArr.push(obj);
    
    }
    
    console.log(keyArr);
    

    P.S : 这不是有效的 json 或数组

    [
      1: {id:1, name:'post1', desc: 'post1 desc' },
      2: {id:2, name:'post2', desc: 'post2 desc' },
      3: {id:3, name:'post3', desc: 'post3 desc' }
    ]
    

    最好的替代方案是,

    [ { '1': { id: 1, name: 'post1', desc: 'post1 desc' } },
      { '2': { id: 2, name: 'post2', desc: 'post2 desc' } },
      { '3': { id: 3, name: 'post3', desc: 'post3 desc' } } ]
    

    【讨论】:

      【解决方案2】:
          var obj = [  
          {id:1, name:'post1', desc: 'post1 desc' },
          {id:2, name:'post2', desc: 'post2 desc' },
          {id:3, name:'post3', desc: 'post3 desc' }
          ];
      
          var arr = Object.keys(obj).map(function(key){
          var tempObject = {};
          tempObject[obj[key].id] = obj[key];
         return tempObject;
         });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-29
        • 1970-01-01
        • 1970-01-01
        • 2018-10-23
        • 2019-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多