Node.js - MySQL 開始使用
Hello, 有志者們!今天,我們將踏上一段令人興奮的旅程,進入 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. 斯科特·菲茨杰拉德', 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} 作者:${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