如何按顺序销毁多个查询结果



我想使用相同的模式来销毁查询结果,但似乎做不到。在以下代码中:

var {rows} = await client.query("SELECT id FROM mytable;");
var Id = rows[0].id; //destructured here as expected

如果我接着说:

rows = await client.query('SELECT max(id) as id FROM table2;');

我可以访问值的唯一方法是这样的:

rows.rows[0].id;

我不应该像第一次那样访问吗?

rows[0].id;

我需要以某种方式重置{rows}吗?

JS非常新,所以找到了我的路。

您仍然需要重组变量。简单地分配给rows只会得到分配给变量的完整响应对象,正如您所看到的。

破坏同一个变量有几个问题,因为你不能这样做:

let {rows} = await client.query("SELECT id FROM mytable;");
// Error: unexpected token without declaration
{rows} = await client.query('SELECT max(id) as id FROM table2;');
// Error: Identifier 'rows' has already been declared
let {rows} = await client.query('SELECT max(id) as id FROM table2;');

您可以多次声明var

var {rows} = await client.query("SELECT id FROM mytable;");
// no problemo
var {rows} = await client.query('SELECT max(id) as id FROM table2;');

如果你想用let声明,那么你需要做一些类似的事情:

let {rows} = await client.query("SELECT id FROM mytable;");
// this works too…
({rows} = await client.query('SELECT max(id) as id FROM table2;'));

相关内容

  • 没有找到相关文章

最新更新