使用 Node.js 操作 MySQL 数据库

引言

在前端开发中,我们经常需要与数据库进行交互,存取数据。而在 Node.js 中,有很多种方法可以操作数据库,其中最常用的之一就是使用 MySQL。MySQL 是一个流行的开源关系型数据库管理系统,而 Node.js 提供了许多库和模块来方便地与 MySQL 进行交互。

本文将介绍如何使用 Node.js 中的 MySQL API 来连接、查询和操作 MySQL 数据库。

准备工作

在开始之前,确保已经安装了 Node.js 和 MySQL 数据库。如果还没有安装,可以参考官方文档进行安装。

另外,我们还需要安装一个名为 mysql 的 Node.js 模块,这个模块是连接和操作 MySQL 数据库的核心。

在命令行中执行以下命令来安装 mysql 模块:

npm install mysql

安装完成后,我们就可以在 Node.js 中使用 mysql 模块了。

连接到数据库

在开始之前,我们需要先建立与数据库的连接。使用 mysql 模块,我们可以通过以下代码来连接到数据库:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'mydatabase'
});

connection.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL database: ', err);
    return;
  }
  console.log('Connected to MySQL database!');
});

上述代码创建了一个 connection 对象,通过传入包含数据库连接信息的配置对象来进行连接。其中,host 是数据库的主机名,user 是数据库的用户名,password 是数据库的密码,database 是要连接的数据库的名称。

然后,通过调用 connect 方法来连接到数据库。如果连接成功,就会在控制台输出 "Connected to MySQL database!",否则会输出错误消息。

执行查询

连接到数据库后,我们就可以执行各种 SQL 查询了。使用 mysql 模块,我们可以通过以下代码来执行查询:

connection.query('SELECT * FROM users', (err, results) => {
  if (err) {
    console.error('Error executing query: ', err);
    return;
  }
  console.log('Query results: ', results);
});

上述代码执行了一个简单的查询,从名为 users 的表中选取所有行。查询结果会通过回调函数返回,如果出现错误,错误信息会作为第一个参数传递给回调函数。

在实际项目中,我们可以根据需要编写更复杂的查询,例如带有条件和排序的查询,以及连接多个表进行联合查询。

插入数据

除了查询,我们还可以使用 mysql 模块来插入数据到数据库中。以下是一个插入数据的示例:

const user = { name: 'John', email: 'john@example.com' };

connection.query('INSERT INTO users SET ?', user, (err, results) => {
  if (err) {
    console.error('Error inserting data: ', err);
    return;
  }
  console.log('Data inserted successfully!');
});

上述代码将一个名为 user 的对象插入到名为 users 的表中。通过 SET ? 可以将对象的属性映射到表的列中。

同样,如果插入数据时出现错误,会通过回调函数返回。

更新和删除数据

使用 mysql 模块,我们还可以更新和删除数据库中的数据。

以下是一个更新数据的示例:

const userId = 1;
const newEmail = 'newemail@example.com';

connection.query('UPDATE users SET email = ? WHERE id = ?', [newEmail, userId], (err, results) => {
  if (err) {
    console.error('Error updating data: ', err);
    return;
  }
  console.log('Data updated successfully!');
});

以上代码将 id 为 1 的用户的邮箱更新为 newemail@example.com

以下是一个删除数据的示例:

const userId = 1;

connection.query('DELETE FROM users WHERE id = ?', userId, (err, results) => {
  if (err) {
    console.error('Error deleting data: ', err);
    return;
  }
  console.log('Data deleted successfully!');
});

以上代码将 id 为 1 的用户从数据库中删除。