Node.js 与 MySQL 入门

你好,有抱负的程序员们!今天,我们将踏上一段激动人心的旅程,进入 Node.js 和 MySQL 的世界。作为你友好的邻居计算机科学老师,我将引导你一步步完成这次探险。别担心如果你之前从未写过一行代码——我们将从最基础开始,一起构建我们的知识。

Node.js - MySQL Get Started

MySQL 安装

在我们进入编码部分之前,我们需要设置我们的工具。想象一下在烹饪美味佳肴前准备厨房。我们需要的第一个配料是 MySQL。

什么是 MySQL?

MySQL 就像是一个超级有组织的文件柜,用于你的数据。它是一个数据库管理系统,帮助你高效地存储、组织和检索信息。想象一下如果你必须只用笔和纸来追踪图书馆里的数千本书——那将是一场噩梦!MySQL 为我们做这项工作,但使用的是计算机数据而不是书籍。

安装 MySQL

  1. 访问 MySQL 官方网站(https://dev.mysql.com/downloads/)。
  2. 下载适合你操作系统的 MySQL 社区服务器。
  3. 运行安装程序并按照屏幕上的指示操作。
  4. 在安装过程中,你会被要求设置 root 密码。记住这个密码——它就像是你数据王国的万能钥匙!

安装完成后,你可以通过打开命令提示符或终端并输入以下命令来验证安装:

mysql --version

如果你看到了版本号,恭喜你!你已经成功安装了 MySQL。

Node.js 的 MySQL 驱动

现在我们的数据库系统已经准备好了,我们需要一种方式让 Node.js 与 MySQL 进行通信。这就是 MySQL 驱动的作用。把它想象成帮助 Node.js 和 MySQL 相互理解的翻译。

安装 MySQL 驱动

要安装 MySQL 驱动,我们将使用 npm(Node 包管理器)。这就像 Node.js 的应用商店。打开你的终端并输入:

npm install mysql

这个命令告诉 npm 为我们下载并安装 mysql 包。简单吧?

建立连接

现在来到了激动人心的部分——将 Node.js 连接到 MySQL!这就像介绍两个朋友并帮助他们握手。

基本连接

让我们编写我们的第一段代码来建立连接:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'yourusername',
password: 'yourpassword',
database: 'yourdatabase'
});

connection.connect((err) => {
if (err) {
console.error('连接数据库时出错:', err);
return;
}
console.log('已成功连接到数据库!');
});

让我们分解一下:

  1. const mysql = require('mysql'); - 这行代码导入了我们之前安装的 MySQL 驱动。

  2. const connection = mysql.createConnection({...}); - 在这里,我们创建了一个连接对象。就像填写一个表格,用详细信息来访问我们的 MySQL 数据库。

  3. connect() 函数是魔法发生的地方。它尝试使用我们提供的详细信息建立连接。

  4. 如果有错误(比如密码错误),它会打印一个错误信息。

  5. 如果连接成功,它会打印 "已成功连接到数据库!"。

测试连接

为了测试这个,创建一个名为 db_connect.js 的新文件,粘贴上面的代码(将占位符替换为你的 MySQL 详细信息),并使用 Node.js 运行它:

node db_connect.js

如果一切设置正确,你应该在终端看到 "已成功连接到数据库!" 被打印出来。恭喜你!你已经建立了你的第一个 Node.js-MySQL 连接!

关闭连接

当你完成时关闭连接是很重要的。以下是如何操作的:

connection.end((err) => {
if (err) {
console.error('关闭数据库连接时出错:', err);
return;
}
console.log('数据库连接已关闭。');
});

永远记得关闭你的连接——就像离开房间时关灯一样!

执行基本数据库操作

现在我们可以连接到我们的数据库,让我们学习如何执行一些基本操作。

创建表

让我们创建一个简单的表来存储关于书籍的信息:

const createTableQuery = `
CREATE TABLE IF NOT EXISTS books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
published_year INT
)
`;

connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('创建表时出错:', err);
return;
}
console.log('表成功创建!');
});

这个查询创建了一个名为 'books' 的表,包含 id、title、author 和 published_year 列。

插入数据

现在,让我们向我们的表添加一些书籍:

const insertBookQuery = `
INSERT INTO books (title, author, published_year)
VALUES ('了不起的盖茨比', 'F. Scott Fitzgerald', 1925)
`;

connection.query(insertBookQuery, (err, result) => {
if (err) {
console.error('插入书籍时出错:', err);
return;
}
console.log('书籍成功插入!');
});

检索数据

最后,让我们检索并显示我们的书籍:

const selectBooksQuery = 'SELECT * FROM books';

connection.query(selectBooksQuery, (err, results) => {
if (err) {
console.error('检索书籍时出错:', err);
return;
}
console.log('数据库中的书籍:');
results.forEach((book) => {
console.log(`${book.title} by ${book.author} (${book.published_year})`);
});
});

这个查询从我们的表中选择了所有书籍并将它们打印出来。

结论

恭喜你!你已经迈出了进入 Node.js 和 MySQL 世界的第一步。我们涵盖了安装、连接和基本数据库操作。记住,就像学习任何新技能一样,实践是关键。尝试创建不同的表,插入各种类型的数据,并编写更复杂的查询。

在我多年的教学经验中,我发现最好的学习方式就是实践。所以,这里给你一个挑战:创建一个管理图书馆系统的程序。它应该允许添加新书籍、借阅书籍和显示可用的书籍。这个项目将帮助你巩固所学的内容,并推动你探索更高级的概念。

记住,每个专家都曾是一个初学者。继续实践,保持好奇心,不要害怕犯错误——这是我们学习和成长的方式。快乐编码!

方法 描述
createConnection() 创建一个新的 MySQL 连接
connect() 建立到数据库的连接
end() 关闭数据库连接
query() 在数据库上执行 SQL 查询
escape() 转义值以防止 SQL 注入
format() 通过自动转义值来准备 SQL 语句
beginTransaction() 开始一个新的事务
commit() 提交当前事务
rollback() 回滚当前事务
changeUser() 更改连接的当前用户
ping() 向服务器发送 ping 检查连接
statistics() 返回服务器统计信息
threadId 返回当前连接的线程 ID

Credits: Image by storyset