📜  knex 更新并列出所有记录 mysql - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:28.903000             🧑  作者: Mango

使用 Knex 更新并列出所有记录 MySQL

在 MySQL 数据库中,更新表中的数据是一种常见的操作。 Knex 是一个简单且灵活的 SQL 查询构建器,它可以简化这个过程,并允许我们在使用 JavaScript 时构建 SQL 查询。 本文将介绍使用 Knex 更新并列出所有记录 MySQL 表的方法。

安装 Knex

在使用 Knex 之前,我们需要先安装它。 运行以下命令即可:

npm install knex
连接到 MySQL 数据库

在开始更新和查询数据之前,我们需要使用 Knex 连接到我们的 MySQL 数据库。 首先,我们需要安装 Node.js 的 MySQL 驱动程序 - mysql2 :

npm install mysql2

建议使用环境变量将数据库凭据存储在您的项目中,并将其添加到您的 .env 文件中。 连接到数据库的方法如下:

const knex = require('knex')({
  client: 'mysql2',
  connection: {
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE
  }
});

module.exports = knex;

请注意,这里我们使用了 mysql2 客户端。 您可以使用任何其他支持的客户端,例如 pg 或 sqlite3。

更新数据

使用 Knex 更新数据非常简单,只需执行以下代码:

const knex = require('./knex');

knex('users')
  .where({ id: 1 })
  .update({ email: 'new-email@example.com' })
  .then(() => {
    console.log('User updated successfully');
  })
  .catch((err) => {
    console.error(err);
  });

此代码将更新 id 为 1 的用户的电子邮件地址。 请注意,我们使用了 .where() 方法来指定要更新的行,然后使用 .update() 方法来指定我们要更改的字段和值。

列出所有记录

要列出 MySQL 表中的所有记录,请使用以下代码:

knex('users')
  .select('*')
  .then((rows) => {
    console.log(rows);
  })
  .catch((err) => {
    console.error(err);
  });

这将选择表中的所有列,并将结果作为数组返回。 您可以在 .select() 方法中指定要选择的列。 要选择多个列,请将它们作为参数传递给 .select() 方法,如下所示:

knex('users')
  .select('id', 'email')
  .then((rows) => {
    console.log(rows);
  })
  .catch((err) => {
    console.error(err);
  });

这将选择 id 和电子邮件列,并将它们作为对象数组返回。

更新并列出所有记录

你可以使用 knex.transaction() 将更新和查询操作组合在一起。 事务将确保操作在同一事务中运行,以确保数据的一致性。 实现方式如下:

knex
  .transaction((trx) => {
    return trx('users')
      .where({ id: 1 })
      .update({ email: 'new-email@example.com' })
      .then(() => {
        return trx('users').select('*');
      })
  })
  .then((rows) => {
    console.log(rows);
  })
  .catch((err) => {
    console.error(err);
  });

此代码将使用事务更新 id 为 1 的用户的电子邮件地址,并然后选取所有用户并将其作为数组返回。

结论

在本文中,我们介绍了如何使用 Knex 更新并列出所有记录 MySQL 表。 有了 Knex,我们可以轻松地编写复杂的 SQL 查询,并对其进行修改和重构。