Node.js - MySQL Bắt đầu

Xin chào, những người đam mê lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của Node.js và MySQL. Là một giáo viên khoa học máy tính gần gũi, tôi ở đây để hướng dẫn bạn từng bước trong cuộc phiêu lưu này. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - chúng ta sẽ bắt đầu từ đầu và cùng nhau xây dựng kiến thức.

Node.js - MySQL Get Started

Cài đặt MySQL

Trước khi chúng ta nhảy vào phần mã hóa, chúng ta cần thiết lập các công cụ của mình. Hãy tưởng tượng như đang chuẩn bị bếp trước khi nấu một bữa ăn ngon. Nguyên liệu đầu tiên chúng ta cần là MySQL.

MySQL là gì?

MySQL giống như một tủ tài liệu siêu tổ chức cho dữ liệu của bạn. Nó là một hệ thống quản lý cơ sở dữ liệu giúp bạn lưu trữ, tổ chức và truy xuất thông tin một cách hiệu quả. Hãy tưởng tượng nếu bạn phải theo dõi hàng nghìn cuốn sách trong thư viện chỉ bằng bút và giấy - điều đó sẽ là một ác mộng! MySQL thực hiện công việc này cho chúng ta, nhưng với dữ liệu máy tính thay vì sách.

Cài đặt MySQL

  1. Truy cập trang web chính thức của MySQL (https://dev.mysql.com/downloads/).
  2. Tải xuống MySQL Community Server phù hợp với hệ điều hành của bạn.
  3. Chạy trình cài đặt và làm theo hướng dẫn trên màn hình.
  4. Trong quá trình cài đặt, bạn sẽ được yêu cầu đặt mật khẩu root. Hãy nhớ mật khẩu này - nó giống như chìa khóa chủ cho vương quốc dữ liệu của bạn!

Sau khi cài đặt, bạn có thể xác minh quá trình cài đặt bằng cách mở command prompt hoặc terminal và gõ:

mysql --version

Nếu bạn thấy số phiên bản, chúc mừng! Bạn đã cài đặt MySQL thành công.

MySQL Driver cho Node.js

Bây giờ chúng ta đã có hệ thống cơ sở dữ liệu sẵn sàng, chúng ta cần một cách để Node.js giao tiếp với MySQL. Đó là nơi mà MySQL driver ra vào.

Cài đặt MySQL Driver

Để cài đặt MySQL driver, chúng ta sẽ sử dụng npm (Node Package Manager). Nó giống như một cửa hàng ứng dụng cho các gói Node.js. Mở terminal của bạn và gõ:

npm install mysql

Lệnh này告诉 npm tải xuống và cài đặt gói mysql cho chúng ta. Dễ dàng phải không?

Thiết lập Kết nối

Bây giờ đến phần thú vị - kết nối Node.js với MySQL! Đó giống như giới thiệu hai người bạn và giúp họ bắt tay.

Kết nối Cơ bản

Hãy viết đoạn mã đầu tiên để thiết lập kết nối:

const mysql = require('mysql');

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

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

Hãy phân tích này:

  1. const mysql = require('mysql'); - Dòng này nhập driver MySQL mà chúng ta đã cài đặt trước đó.

  2. const connection = mysql.createConnection({...}); - Tại đây, chúng ta tạo một đối tượng kết nối. Nó giống như điền vào một biểu mẫu với các chi tiết cần thiết để truy cập cơ sở dữ liệu MySQL của chúng ta.

  3. Hàm connect() là nơi xảy ra phép màu. Nó cố gắng thiết lập kết nối bằng các chi tiết chúng ta đã cung cấp.

  4. Nếu có lỗi (như mật khẩu sai), nó sẽ in ra thông báo lỗi.

  5. Nếu kết nối thành công, nó sẽ in ra "Connected to the database!".

Kiểm tra Kết nối

Để kiểm tra, tạo một tệp mới có tên db_connect.js, dán mã trên vào (thay thế các placeholder bằng chi tiết MySQL thực tế của bạn), và chạy nó bằng Node.js:

node db_connect.js

Nếu mọi thứ được thiết lập đúng, bạn nên thấy "Connected to the database!" in ra trong terminal của bạn. Chúc mừng! Bạn vừa tạo kết nối Node.js-MySQL đầu tiên của mình!

Đóng Kết nối

Việc đóng kết nối khi bạn hoàn thành là rất quan trọng. Dưới đây là cách bạn có thể làm điều đó:

connection.end((err) => {
if (err) {
console.error('Error closing the database connection:', err);
return;
}
console.log('Database connection closed.');
});

Luôn nhớ đóng kết nối của bạn - nó giống như tắt đèn khi bạn rời khỏi phòng!

Thực hiện các thao tác cơ sở dữ liệu cơ bản

Bây giờ chúng ta có thể kết nối với cơ sở dữ liệu, hãy học cách thực hiện một số thao tác cơ bản.

Tạo một Bảng

Hãy tạo một bảng đơn giản để lưu trữ thông tin về sách:

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('Error creating table:', err);
return;
}
console.log('Table created successfully!');
});

Truy vấn này tạo một bảng có tên 'books' với các cột id, title, author và published year.

Chèn Dữ liệu

Bây giờ, hãy thêm một số sách vào bảng của chúng ta:

const insertBookQuery = `
INSERT INTO books (title, author, published_year)
VALUES ('The Great Gatsby', 'F. Scott Fitzgerald', 1925)
`;

connection.query(insertBookQuery, (err, result) => {
if (err) {
console.error('Error inserting book:', err);
return;
}
console.log('Book inserted successfully!');
});

Truy xuất Dữ liệu

Cuối cùng, hãy truy xuất và hiển thị các sách của chúng ta:

const selectBooksQuery = 'SELECT * FROM books';

connection.query(selectBooksQuery, (err, results) => {
if (err) {
console.error('Error retrieving books:', err);
return;
}
console.log('Books in the database:');
results.forEach((book) => {
console.log(`${book.title} by ${book.author} (${book.published_year})`);
});
});

Truy vấn này chọn tất cả các sách từ bảng của chúng ta và in chúng ra.

Kết luận

Chúc mừng! Bạn đã迈出了进入Node.js和MySQL世界的第一步。我们已经涵盖了安装、连接和基本数据库操作。记住,像学习任何新技能一样,练习是关键。尝试创建不同的表格,插入各种类型的数据,并编写更复杂的查询。

在我多年的教学经验中,我发现最好的学习方式就是实践。所以,这里给你一个挑战:创建一个管理图书馆系统的程序。它应该允许添加新书, mượn sách và hiển thị các sách có sẵn。 Dự án này sẽ giúp củng cố những gì bạn đã học và khuyến khích bạn khám phá các khái niệm tiên tiến hơn.

Nhớ rằng, mỗi chuyên gia từng là một người mới bắt đầu. Hãy tiếp tục thực hành, giữ vững sự tò mò và đừng sợ mắc lỗi - đó là cách chúng ta học hỏi và phát triển. Chúc may mắn với việc编码!

Phương pháp Mô tả
createConnection() Tạo một kết nối MySQL mới
connect() Thiết lập kết nối với cơ sở dữ liệu
end() Đóng kết nối cơ sở dữ liệu
query() Thực hiện một truy vấn SQL trên cơ sở dữ liệu
escape() Lưu trữ các giá trị để ngăn chặn SQL injection
format() Chuẩn bị một câu lệnh SQL bằng cách tự động lưu trữ các giá trị
beginTransaction() Bắt đầu một giao dịch mới
commit() Chấp nhận giao dịch hiện tại
rollback() Hoàn tác giao dịch hiện tại
changeUser() Thay đổi người dùng hiện tại của kết nối
ping() Ping máy chủ để kiểm tra kết nối
statistics() Trả về thống kê máy chủ
threadId Trả về ID luồng của kết nối hiện tại

Credits: Image by storyset