在开发 Web 应用程序时,我们经常需要与数据库进行交互。在 Node.js 中,有多种方法可以连接数据库,其中使用 MySQL 是一个流行的选择。本文将介绍如何使用 Node.js 连接到 MySQL 数据库并执行一些基本的 CRUD 操作。
安装 MySQL
在开始使用 MySQL 之前,你需要安装它。你可以从 MySQL 官方网站 下载适合自己系统的版本进行安装。
安装 MySQL 模块
在 Node.js 中连接 MySQL 需要使用第三方模块 mysql
。安装该模块可以通过 npm 命令:
--- ------- -----
连接 MySQL 数据库
在使用 mysql
模块之前,需要先建立一个连接。使用以下代码创建一个名为 connection
的连接对象:
----- ----- - ----------------- ----- ---------- - ------------------------ ----- ------------ ----- ------- --------- ---------------- --------- --------------- --- ---------------------
上述代码中,我们指定了要连接的 MySQL 主机、用户名、密码以及要使用的数据库名称。当调用 connect()
方法时,Node.js 将尝试连接到 MySQL 数据库。
执行 SQL 查询
一旦连接到数据库,我们可以使用 query()
方法执行 SQL 查询。例如,以下代码将查询 users
表中所有数据并将其输出到控制台:
------------------------ - ---- ------- ------- -------- -- - -- ------- ----- ------ --------------------- ---
如果查询成功,query()
方法将返回一个结果集。你可以遍历该结果集并对其进行操作。
插入数据
要向 MySQL 数据库中插入新数据,可以使用 insert
语句。以下代码演示了如何插入一条新记录:
----- --------- - - ----- ----- ----- ------ ---------------------- -- ------------------------ ---- ----- --- --- ---------- ------- -------- -- - -- ------- ----- ------ --------------------- ----------------------- ---------- ---
在上面的示例中,我们将一个名为 newRecord
的对象传递给 query()
方法。这个对象指定了要插入的新记录的值。当执行成功时,affectedRows
属性将包含受影响的行数。
更新数据
要更新 MySQL 数据库中的现有数据,可以使用 update
语句。以下代码演示了如何更新 users
表中 ID 为 1 的记录的电子邮件地址:
----- ----- - ----------------------- ----- -- - -- ----------------- ------- ----- --- ----- - - ----- -- - --- ------- ---- ------- -------- -- - -- ------- ----- ------ -------------------- ---------------------- ---------- - --
在上面的示例中,我们使用占位符 ?
指定了要更新的值。这些值被传递到 query()
方法中的数组中。
删除数据
要从 MySQL 数据库中删除现有数据,可以使用 delete
语句。以下代码演示了如何删除 users
表中 ID 为 1 的记录:
----- -- - -- ------------------------ ---- ----- ----- -- - --- --- ------- -------- -- - -- ------- ----- ------ -------------------- ----------------------- ---------- ---
在上面的示例中,我们只提供了一个占位符来指定要删除的记录的 ID 值。
关闭连接
在完成所有数据库操作后,应该关闭 MySQL 连接以释放资源。使用以下代码:
-----------------
总结
本文介绍了如何使用 Node.js 连接到 MySQL 数据库并执行一些基本的 CRUD 操作
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/1421