Javascript 节点MySQL-发送前编辑响应
我正在使用Javascript 节点MySQL-发送前编辑响应,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我正在使用Node和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) {
Node
和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')
}
});
});
[
1: {id:1, name:'post1', desc: 'post1 desc' },
2: {id:2, name:'post2', desc: 'post2 desc' },
3: {id:3, name:'post3', desc: 'post3 desc' }
]
我想在发送之前编辑响应。我希望id
是键
,值
是post
。像1我想要1:{id:1,name:'post1',desc:'post1 desc'}
。因此,整个响应应该如下所示:
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')
}
});
});
[
1: {id:1, name:'post1', desc: 'post1 desc' },
2: {id:2, name:'post2', desc: 'post2 desc' },
3: {id:3, name:'post3', desc: 'post3 desc' }
]
我怎样才能做到这一点?非常感谢。你需要这样的东西
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);
注意:这不是一个有效的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' } } ]