Node.js pg客户端查询适用于第一个查询,但是尽管有数据,但第二个查询失败

时间:2018-07-23 16:09:46

标签: node.js pg pg-query

在下面的代码中,第一个查询按预期方式工作,结果很好。但是,当第二个查询运行时,结果是不确定的,并且在尝试访问行值时会引发错误。我已经在数据库中手动运行了实际的查询,它返回一个值,所以有数据。

    var cli = new pg.Client(conn);
    await cli.connect();

    //get last max log id
    const {rows} = await cli.query("SELECT value as id FROM public.mytable  where name = 'max_log_id'");
    lastMaxId = rows[0].id; //no error here
    console.log(lastMaxId);

    //get max log id
    const {res} = await cli.query('SELECT max(id) as id FROM public.myothertable');
    console.log('RES: ' + JSON.stringify(res)); //res = undefined
    maxId = res[0].id; //throws error here

我不能在同一客户端上运行两个查询吗?还是我需要以某种方式重置客户端?

谢谢!

1 个答案:

答案 0 :(得分:0)

弄清楚了,这是答案:

    var cli = new pg.Client(conn);
    await cli.connect();

    //get last max log id
    var {rows} = await cli.query("SELECT value as id FROM public.my table  where name = 'max_log_id'");
    lastMaxId = rows[0].id;
    console.log(lastMaxId);

    //get max log id
    rows = await cli.query('SELECT max(id) as id FROM public.myothertable');
    console.log('RES: ' + JSON.stringify(rows.rows[0].id));
    maxId = rows.rows[0].id;