node.js - 如何按顺序解构多个查询结果?
问题描述
我想使用相同的模式来解构查询结果,但似乎我不能。在以下代码中:
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;'));
推荐阅读
- c++ - 如何抛出“模板参数”类型的异常?
- chef-infra - 如何使用厨师食谱在文件中间插入节
- bash - 尝试从 xentop grep 和 awk CPU % 时输出不同
- vba - VBA - 将幻灯片母版中的项目符号样式应用于选定的文本框
- mathjs - mathjs 有 null 或 undefined 的概念吗?
- c++ - MPI 生成前 20 个数字
- javascript - 我应该如何在之前(在不同的函数中)引用 an 元素,并在新函数中修改它?
- node.js - NodeJs - 如何在谷歌云平台上部署我的应用程序的更新版本
- linux - sh 脚本不与 Crontab 一起运行,而是手动运行
- sql-server - 创建表 6 x 6 并从上线自动溢出