MySQL Knex NodeJS 的使用及向数据库插入数据

MySQL Knex NodeJS 的使用及向数据库插入数据

阅读更多:MySQL 教程

简介

MySQL 是一个流行的关系型数据库管理系统。在开发 Web 应用程序时,我们常常需要与数据库进行交互。NodeJS 作为一种流行的服务器端平台,提供了许多工具和库来访问数据库。Knex 是一个强大且易于使用的 Javascript 库,它允许您与 MySQL 数据库交互,并为您提供了一种流畅的编程体验。

在本文中,我们将学习如何使用 MySQL Knex NodeJS,以及如何向数据库插入数据和使用 Knex 的一些高级功能。

安装

我们需要安装以下软件:

  1. MySQL 数据库 – 您可以从 MySQL 官方网站下载安装程序;
  2. NodeJS – 您可以从 NodeJS 官方网站下载。

安装完成后,您需要安装 Knex:

npm install knex --save
Mysql

连接到 MySQL 数据库

在使用 Knex 之前,我们需要建立一个 MySQL 数据库,然后创建一个数据库表。假设我们已经完成了这些步骤,并且现在需要连接到数据库。

在 NodeJS 中,我们可以使用以下代码进行连接:

const knex = require('knex')({
  client: 'mysql',
  connection: {
    host: '127.0.0.1',
    user: 'your_database_user',
    password: 'your_database_password',
    database: 'myapp_test'
  }
});
JavaScript

这将创建一个名为 knex 的连接,在此之后,您可以开始使用 Knex 进行查询。

插入数据

我们使用 knex 对象插入数据。以下代码将向数据库中的 users 表中插入一行数据:

knex('users').insert({name: 'John', age: 30})
  .then(() => {
    console.log('Inserted');
  })
  .catch((err) => {
    console.log(err);
  });
JavaScript

在上面的代码中,我们使用 knex 对象中的 insert 方法,并传入一个对象。该对象包含要插入新行的列和对应的值。在此之后,我们使用 Promise 进行回调。

查询数据

我们可以使用 knex 对象执行各种类型的查询。以下是使用 knex 对象查询数据的一些示例。

选择所有行和列

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

在上面的代码中,我们使用 select 方法选择所有行和列。然后,我们使用 table 方法指定表。在此之后,我们使用 Promise 进行回调。

选择指定的列

knex.select('name', 'age').table('users')
  .then((rows) => {
    console.log(rows);
  })
  .catch((err) => {
    console.log(err);
  });
JavaScript

在上面的代码中,我们使用 select 方法选择 nameage 列。然后,我们使用 table 方法指定表。在此之后,我们使用 Promise 进行回调。

选择带有条件的行

knex('users').where('age', '>', 20)
  .then((rows) => {
    console.log(rows);
  })
  .catch((err) => {
    console.log(err);
  });
JavaScript

在上面的代码中,我们使用 where 方法选择年龄大于 20 岁的行。然后,我们使用 Promise 进行回调。

更多的查询方式可以参考 Knex 文档。

Promise 风格和回调风格

Knex 支持 Promise 风格和回调风格。您可以使用其中的任何一种,具体取决于您的喜好和风格。以下是一个使用回调风格的示例:

knex('users').insert({name: 'John', age: 30}, function(err, result) {
    if (err) {
        console.log(err);
    } else {
        console.log(result);
    }
});
JavaScript

在上面的代码中,我们将回调函数传递给 insert 方法。回调函数包含两个参数:错误和结果。如果错误不为 null,结果将为 null。否则,结果将包含插入的行的 ID。

高级功能

Knex 提供了许多高级功能,使您能够编写更简洁和清晰的代码。以下是一些示例。

事务

knex.transaction((trx) => {
    return trx.from('users').where('id', 1)
        .update('age', 35)
        .then(() => {
            return trx.insert({name: 'Alex', age: 21})
                .into('users');
        });
})
.then(() => {
    console.log('Transaction complete');
})
.catch((err) => {
    console.log(err);
});
JavaScript

在上面的代码中,我们使用 transaction 方法创建一个事务。然后,我们在事务中执行两个操作。如果所有操作都成功,则提交事务。否则,回滚事务。

批处理插入

knex.batchInsert('users', [{name: 'John', age: 30}, {name: 'Alex', age: 21}])
  .then(() => {
    console.log('Batch inserted');
  })
  .catch((err) => {
    console.log(err);
  });
JavaScript

在上面的代码中,我们使用 batchInsert 方法批处理插入多个行。在此之后,我们使用 Promise 进行回调。

连接池

const knex = require('knex')({
  client: 'mysql',
  connection: {
    host: '127.0.0.1',
    user: 'your_database_user',
    password: 'your_database_password',
    database: 'myapp_test'
  },
  pool: { min: 0, max: 7 }
});
JavaScript

在上面的代码中,我们使用 pool 属性指定连接池配置。

总结

MySQL Knex NodeJS 是一种非常流行的组合,使您能够有效地访问和操作数据库。在这篇文章中,我们学习了如何连接到 MySQL 数据库,并使用 Knex 插入和查询数据。此外,我们还介绍了一些 Knex 的高级功能,如事务、批处理插入和连接池等。

学习 MySQL Knex NodeJS 能够帮助您更好地管理数据库,并使您的程序更加高效和可靠。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册