2017-09-17 12 views
1

私はNodeMySQLを使用しています。私はこのようなノードでのMySQLからデータを引っ張っています:ノード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' } 
] 

私は送信する前に、応答を編集したいです。 idkeyvaluepostとします。 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' } 
] 

どうすればこの問題を解決できますか?どうもありがとう。

答えて

2

あなたはこのようなものが必要、

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' } } ] 
0
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; 
    }); 
関連する問題