介绍
Node.js 是一种流行的开源 JavaScript 运行环境,用于构建高性能的网络应用程序。在 Node.js 中,可以使用 Node-mysql2 模块来连接和操作 MySQL 数据库。Node-mysql2 是 mysql 模块的替代品,它为 Node.js 应用程序提供了更高的性能和可靠性。
本文将介绍如何使用 Node-mysql2 模块来连接、查询和操作 MySQL 数据库。我们将说明如何配置和连接数据库,并提供一些基本的 SQL 查询示例。
安装和配置
在此之前,你需要确保已经安装了 Node.js 和 MySQL。如果还没有安装,可以访问 官方网站 和 MySQL 文档 进行安装和配置。
一旦安装了 Node.js 和 MySQL,就可以打开终端或命令提示符并输入以下命令来安装 Node-mysql2:
npm install --save mysql2
连接到数据库
Node-mysql2 模块相当灵活。你可以使用回调函数或 Promise 连接到数据库。在这篇文章中,我们将使用 async/await 语法来处理 Promise。
要连接到数据库,请使用以下代码创建连接池:
const mysql = require('mysql2/promise'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'test' });
在代码中,host
、user
、password
和 database
是数据库的相关信息。如果你的 MySQL 服务器安装在本地主机上,可以使用 localhost
作为 host
,否则请使用主机名或 IP 地址。
创建连接池是一种一次性开销,但它可以让你轻松高效地重复使用连接。当你需要连接到数据库时,只需要从连接池中获取一个连接即可:
const connection = await pool.getConnection();
可以在连接池外部使用这里的 connection
对象进行查询。使用完毕后,调用 connection.release()
方法将连接的使用权还回连接池:
const [rows, fields] = await connection.execute('SELECT * FROM users'); connection.release();
使用 connection.execute()
方法执行任何 SQL 查询,并通过解构赋值获取查询结果。在完成查询后,请务必将连接还回池中。
查询数据
下面的示例演示如何使用 Node-mysql2 进行基本的 CRUD 操作。让我们从一个简单的查询开始。假设我们有一个名为 users
的表,其中包含以下记录:
-- -------------------- ---- ------- ------ ----- ----- - -- --- ------- ---- ---- ------------ ----- ----------- -- ------ ---- ----- ---- ----- ------ ------ --- ----- ------- -------------------- --- ----- ----- -------------------- --- ---- --------- -------------------
接下来,我们将展示如何查询此表:
const [rows, fields] = await connection.execute('SELECT * FROM users'); console.log(rows);
通过 console.log()
显示 rows
数组的内容:
[ [1, 'John Smith', 'john@example.com'], [2, 'Mary Doe', 'mary@example.com'], [3, 'Bob Johnson', 'bob@example.com'] ]
请注意,rows
数组包含查询结果的每一行。每行都是一个数组,其中包含每个列的值。
我们还可以使用 WHERE
子句进行过滤:
const [rows, fields] = await connection.execute('SELECT * FROM users WHERE id = ?', [1]); console.log(rows);
在这种情况下,只返回 id
列为 1 的行:
[ [1, 'John Smith', 'john@example.com'] ]
要插入新数据,请使用如下代码:
const [rows, fields] = await connection.execute('INSERT INTO users (id, name, email) VALUES (?, ?, ?)', [4, 'Jane Smith', 'jane@example.com']); console.log(rows);
这将插入一个新行,并将其添加到 users
表中。
类似地,要更新数据,请使用如下代码:
const [rows, fields] = await connection.execute('UPDATE users SET email = ? WHERE name = ?', ['john.smith@example.com', 'John Smith']); console.log(rows);
这将更新 users
表中 name
为 'John Smith'
的记录的电子邮件地址。
最后,要删除数据,请使用如下代码:
const [rows, fields] = await connection.execute('DELETE FROM users WHERE name = ?', ['John Smith']); console.log(rows);
这将删除 users
表中 name
为 'John Smith'
的记录。
结论
Node-mysql2 模块是一个快速、可靠且易于使用的 MySQL 连接库,它提供了许多灵活的配置选项和高效的连接池管理。
在本文中,我们介绍了如何使用 Node-mysql2 连接和操作 MySQL 数据库。我们提供了一些基本 SQL 查询的示例,并希望这对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6702371ad91dce0dc846d661