Để sử dụng MySQL với Node.js, bạn cần cài đặt một thư viện MySQL và thiết lập kết nối đến cơ sở dữ liệu. Dưới đây là hướng dẫn cơ bản:

Bước 1: Cài đặt thư viện MySQL

Trước hết, bạn cần cài đặt gói mysql (hoặc mysql2 nếu muốn hỗ trợ thêm các tính năng như Promise). Chạy lệnh sau trong terminal của bạn:

npm install mysql

Hoặc nếu bạn muốn sử dụng mysql2:

npm install mysql2

Bước 2: Tạo kết nối đến cơ sở dữ liệu

Dưới đây là ví dụ về cách tạo kết nối đến MySQL bằng thư viện mysql:

const mysql = require('mysql');

// Cấu hình kết nối đến MySQL
const connection = mysql.createConnection({
  host: 'localhost',  // Địa chỉ máy chủ MySQL
  user: 'root',       // Tên người dùng MySQL
  password: '',       // Mật khẩu của bạn (nếu có)
  database: 'mydatabase'  // Tên cơ sở dữ liệu bạn muốn kết nối
});

// Kết nối đến MySQL
connection.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL:', err.stack);
    return;
  }
  console.log('Connected as id ' + connection.threadId);
});

Bước 3: Thực thi các truy vấn MySQL

Sau khi kết nối, bạn có thể thực hiện các truy vấn SQL:

// Ví dụ truy vấn chọn tất cả các hàng từ bảng 'users'
connection.query('SELECT * FROM users', (error, results, fields) => {
  if (error) throw error;
  console.log('The users are: ', results);
});

// Đóng kết nối khi đã hoàn thành
connection.end();

Sử dụng với Promises (mysql2)

Nếu bạn sử dụng mysql2, bạn có thể dùng Promise để xử lý các truy vấn một cách dễ dàng hơn:

const mysql = require('mysql2/promise');

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

  const [rows, fields] = await connection.execute('SELECT * FROM users');
  console.log(rows);
  
  await connection.end();
}

connectDatabase().catch(err => console.error(err));

Bước 4: Xử lý lỗi

Bạn cần đảm bảo xử lý các lỗi kết nối và truy vấn, đặc biệt là với các ứng dụng thực tế. Điều này có thể thực hiện bằng cách sử dụng try-catch trong trường hợp bạn dùng async/await, hoặc xử lý callback trong các trường hợp không dùng Promise.

Với cách này, bạn đã có thể sử dụng MySQL trong ứng dụng Node.js của mình một cách hiệu quả!