最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Mysql8 xdevapi node.js CRUD table.select问题

IT培训 admin 5浏览 0评论

Mysql8 xdevapi node.js CRUD table.select问题

让我们看看这个选择:

getSession(<connectionOptions>)
.then(s => { return s.getSchema('<schema>') } )
.then(s => { return s.getTable('<table>') } )
.then(t => t.select('*') // or .select('COUNT(*)')
.where('<where>')
.execute(row => myHandler(row, <other params>)));
//
function myHandler(row, <other params>) {
...
}

我有三个问题,在阅读:

  1. 如何查看和处理select具有空结果集?在node.js xdevapi实现中,我没有得到结果集,只有结果行一个接一个,所以我想我的回调甚至都没有被调用过。
  2. 因为我的回调被多次调用,所以我不知道最后一次调用它的时间,即何时从结果集中获取最后一行。我怎样才能看到并处理它?
  3. 选择字符串中不接受COUNT(*)/ *,在两种情况下都会在*字符处抛出意外的令牌错误。不过,这是标准的SQL。我可以看到我可以使用session.sql('SELECT COUNT(*)FROM table')但我很想知道为什么不在CRUD中呢?
回答如下:
  1. 你正在处理承诺,而不是回调。所以在then之后添加execute会让你知道执行完成了。
  2. 一个选项是:在处理程序函数中,您可以根据需要推送到外部数组或简单计数器,当调用then时,您可以参考计数器来获得结果。第二个选项 - 基于this,它看起来像then将以所有结果作为数组解析后的最后一个execute。因此,如果您只有在获得所有结果后才需要采取行动,请不要在处理程序功能中添加任何内容,只需添加then并在那里执行您需要的操作。
  3. 看起来你需要将它用作函数,如.then(t => t.count('*').then(t => t.select('*').count()

附:我从未使用过xdevapi,它看起来很棒。如果你只是用于关系操作我建议你看看knex

Mysql8 xdevapi node.js CRUD table.select问题

让我们看看这个选择:

getSession(<connectionOptions>)
.then(s => { return s.getSchema('<schema>') } )
.then(s => { return s.getTable('<table>') } )
.then(t => t.select('*') // or .select('COUNT(*)')
.where('<where>')
.execute(row => myHandler(row, <other params>)));
//
function myHandler(row, <other params>) {
...
}

我有三个问题,在阅读:

  1. 如何查看和处理select具有空结果集?在node.js xdevapi实现中,我没有得到结果集,只有结果行一个接一个,所以我想我的回调甚至都没有被调用过。
  2. 因为我的回调被多次调用,所以我不知道最后一次调用它的时间,即何时从结果集中获取最后一行。我怎样才能看到并处理它?
  3. 选择字符串中不接受COUNT(*)/ *,在两种情况下都会在*字符处抛出意外的令牌错误。不过,这是标准的SQL。我可以看到我可以使用session.sql('SELECT COUNT(*)FROM table')但我很想知道为什么不在CRUD中呢?
回答如下:
  1. 你正在处理承诺,而不是回调。所以在then之后添加execute会让你知道执行完成了。
  2. 一个选项是:在处理程序函数中,您可以根据需要推送到外部数组或简单计数器,当调用then时,您可以参考计数器来获得结果。第二个选项 - 基于this,它看起来像then将以所有结果作为数组解析后的最后一个execute。因此,如果您只有在获得所有结果后才需要采取行动,请不要在处理程序功能中添加任何内容,只需添加then并在那里执行您需要的操作。
  3. 看起来你需要将它用作函数,如.then(t => t.count('*').then(t => t.select('*').count()

附:我从未使用过xdevapi,它看起来很棒。如果你只是用于关系操作我建议你看看knex

发布评论

评论列表 (0)

  1. 暂无评论