在sql查询结果中添加一个新行

时间:2018-05-06 17:50:31

标签: javascript mysql node.js

我想在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查询结果中添加一行?

1 个答案:

答案 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': []});
    }
});