Knex.js – 一个全能编程开发工程师的必备指南(knex.js基本使用教程)

Knex.js 是一个流行的 Node.js SQL 查询构建器,它提供了便利的查询构建、事务支持和可扩展性,是一个功能强大、易于使用的数据库框架。本文将从多个方面深入浅出解析 Knex.js,帮助大家更好地理解这个框架并快速上手。

一、Knex.js 简介

Knex.js 是一个基于 Promise 的 Node.js SQL 查询构建器,支持 PostgreSQL、MySQL、SQLite3 和 Oracle,在浏览器上运行需要使用 browserifywebpack。它可以方便地与其他流行的 Node.js 框架集成,例如 Express、Koa、Hapi 等。

Knex.js 的主要功能包括:

  1. 支持多种数据库:包括 PostgreSQL、MySQL、SQLite3 和 Oracle 等。
  2. 查询构建器:Knex.js 提供了强大的查询构建器,使您可以轻松地构建复杂的 SQL 查询。
  3. 事务支持:Knex.js 提供了事务支持,您可以轻松地处理数据库事务。
  4. 可扩展性:Knex.js 可以轻松地扩展以支持其他数据库、扩展查询构建器和添加数据类型。

二、安装 Knex.js

安装 Knex.js 只需要运行以下命令:

$ npm install knex --save

我们需要安装一下驱动程序以在我们的代码中使用。

  • MySQL: npm install mysql
  • PostgreSQL: npm install pg
  • SQLite3: npm install sqlite3

三、连接数据库

在连接数据库之前,我们需要知道数据库的连接信息,例如主机名、端口、用户名、密码等。假设我们拥有一个本地 MySQL 数据库,如下所示:

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

我们指定了连接客户端为 MySQL,并提供了连接信息。接下来我们可以使用 knex 对象查询数据库。

四、查询构建器

Knex.js 查询构建器使您可以轻松地构建复杂的 SQL 查询,以下是一些基本用例。

1. 基本查询

要从数据库中选择数据,我们可以使用以下命令:

knex.select('*').from('users')

上面的查询将返回 users 表中的所有列。你还可以将想要的列传递到 select 方法中:

knex.select('username', 'email').from('users')

2. 条件查询

我们可以使用 where 方法指定 SQL 条件:

knex.select('*').from('users').where('id', 1)

以上代码将选择 users 表中 id 为 1 的行。您还可以使用其他比较运算符,例如 where('votes', '>', 100)

3. 插入数据

要插入数据,我们可以使用以下命令:

knex('users').insert({ username: 'admin', email: 'admin@example.com' })

上面的命令将在用户表中插入一行。

4. 更新数据

要更新数据,我们可以使用以下命令:

knex('users').where({ id: 1 }).update({email: 'admin@example.com' })

上面的命令将更新 ID 为 1 的行中的邮箱地址。

5. 删除数据

要删除数据,我们可以使用以下命令:

knex('users').where({ id: 1 }).del()

上面的命令将删除 ID 为 1 的行。

五、事务支持

事务是指数据库的一个操作序列,它要么全部执行,要么全部回滚。Knex.js 提供了事务支持,使您可以轻松地处理数据库事务。以下是事务的一个例子:

knex.transaction(function(trx) {
  knex('users').transacting(trx).insert({username: 'barney', email: 'barney@gmail.com'})
    .then(function() {
      return knex('accounts').transacting(trx).insert({user_id: 1, account_name: 'knex'})
    })
    .then(trx.commit)
    .catch(trx.rollback);
})

六、总结

Knex.js 提供了简单易用的查询构建器和事务支持等功能,它可以让我们轻松地处理数据库操作,是一个十分可靠的 Node.js SQL 查询构建器。通过本文的介绍,希望大家可以对 Knex.js 有一个更深入的了解,并能够在实际项目中灵活使用。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平