在 MariaDB 的查询调用中检查 res 'status'

Checking for res 'status' in Query Call for MariaDB

我正在重写一些 Node 代码以通过 MariaDB 连接器而不是通过 SQL Anywhere 执行 SQL 查询,我正在尝试确定我可以锁定什么响应 属性复制我们之前的代码。

旧代码如下所示:

  sybase.query("SELECT * FROM cc_customers WHERE ex_id = ?",
                [transaction.ex_id], function (result) {
    if (result.status != 'success') {
      connPoolSize++;
      transactionsLeftToProcess--;

      return;
    }...

注意我们如何在 运行 通过 SQL Anywhere 到 Sybase 数据库的查询时使用 result.status。现在在 MariaDB 中,我想知道作为响应的一部分返回了什么,我们可以使用它来复制这个条件检查。在文档 (https://mariadb.com/kb/en/library/connector-nodejs-promise-api/#connectionquerysql-values-promise) 中,我看到对 resrows 的引用作为响应的一部分可用,但我不清楚 status 或其他等效内容(状态代码?)在查询调用中作为 res 的一部分返回。在这种情况下我可以使用返回哪些属性?

使用 MariaDB 你可以简单地捕获错误。如果您使用 async/await,它可能是这样的:

async function fetchCustommers() {
  try {
    return await mariadb.query("SELECT * FROM cc_customers WHERE ex_id = ?", [transaction.ex_id])
  } catch (error) {
    // Your status !== 'success' logic
    connPoolSize++;
    transactionsLeftToProcess--;
  }
}

至于 then/catch 方法:

function fetchCustommers() {
  return mariadb.query("SELECT * FROM cc_customers WHERE ex_id = ?", [transaction.ex_id])
    .catch(error => {
      // Your status !== 'success' logic
      connPoolSize++;
      transactionsLeftToProcess--;
    })
}

另外 hereError 实例中可用的属性。