我想在nodejs
中添加一行到mysql查询的结果但是我无法弄清楚如何做到这一点,看起来结果是RowDataPacket数组,但我没有找到一种方法来推送行或生成RowDataPacket
我的简化版代码是:
var sql="select * from category";
db.query(sql, function (err, result) {
if (err)
throw err;
if (result[0] != undefined) {
var data = result;
if(user_id=='...'){
data.push({'cat_id': "1", 'cat_order': "5",'created_category':"0",'created_user_category':'2'
,'status':'1','name':'test','img':'test.jpg'
,'max_created':new Date() / 1000});
console.log(data);//error:Converting circular structure to JSON
response.json({'result': "yes", 'data': data,'error':''});//error
return;
}
response.json({'result': "yes", 'data': data,'error':''});
} else {
response.json({'result': "no",'error':'wrong input', 'data': []});
}
});
如何在sql查询结果中添加一行?
答案 0 :(得分:0)
看来,我在我推动的对象中使用data
。显然它是圆形结构(data.push(...'cat_order': data,...))
我在问题中使用的简化代码中将其删除。
所以问题中的代码工作正常:)
var sql="select * from category";
db.query(sql, function (err, result) {
if (err)
throw err;
if (result[0] != undefined) {
var data = result;
if(user_id=='...'){
data.push({'cat_id': "1", 'cat_order': "5",'created_category':"0",'created_user_category':'2'
,'status':'1','name':'test','img':'test.jpg'
,'max_created':new Date() / 1000});
console.log(data);
response.json({'result': "yes", 'data': data,'error':''});
return;
}
response.json({'result': "yes", 'data': data,'error':''});
} else {
response.json({'result': "no",'error':'wrong input', 'data': []});
}
});