Node.js 与 MySQL 入门
你好,有抱负的程序员们!今天,我们将踏上一段激动人心的旅程,进入 Node.js 和 MySQL 的世界。作为你友好的邻居计算机科学老师,我将引导你一步步完成这次探险。别担心如果你之前从未写过一行代码——我们将从最基础开始,一起构建我们的知识。
MySQL 安装
在我们进入编码部分之前,我们需要设置我们的工具。想象一下在烹饪美味佳肴前准备厨房。我们需要的第一个配料是 MySQL。
什么是 MySQL?
MySQL 就像是一个超级有组织的文件柜,用于你的数据。它是一个数据库管理系统,帮助你高效地存储、组织和检索信息。想象一下如果你必须只用笔和纸来追踪图书馆里的数千本书——那将是一场噩梦!MySQL 为我们做这项工作,但使用的是计算机数据而不是书籍。
安装 MySQL
- 访问 MySQL 官方网站(https://dev.mysql.com/downloads/)。
- 下载适合你操作系统的 MySQL 社区服务器。
- 运行安装程序并按照屏幕上的指示操作。
- 在安装过程中,你会被要求设置 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('已成功连接到数据库!');
});
让我们分解一下:
-
const mysql = require('mysql');
- 这行代码导入了我们之前安装的 MySQL 驱动。 -
const connection = mysql.createConnection({...});
- 在这里,我们创建了一个连接对象。就像填写一个表格,用详细信息来访问我们的 MySQL 数据库。 -
connect()
函数是魔法发生的地方。它尝试使用我们提供的详细信息建立连接。 -
如果有错误(比如密码错误),它会打印一个错误信息。
-
如果连接成功,它会打印 "已成功连接到数据库!"。
测试连接
为了测试这个,创建一个名为 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