Tóm tắt : trong hướng dẫn này, bạn sẽ học cách kết nối với máy chủ cơ sở dữ liệu MySQL từ ứng dụng node.js.
Cài đặt trình điều khiển node.js cho MySQL
Có một số tùy chọn để tương tác với MySQL từ ứng dụng node.js. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng trình điều khiển node.js cho MySQL được gọi là mysqljs/mysql
.
Đầu tiên, tạo một thư mục để lưu trữ ứng dụng node.js, node-mysql
và sử dụng npm init
lệnh để tạo package.json
tệp:
npm init
Thứ hai, cài đặt gói node.js cho MySQL bằng cách sử dụng lệnh sau:
npm install mysql
Thứ ba, tạo connect.js
bên trong node-mysql
thư mục để lưu trữ mã kết nối với máy chủ cơ sở dữ liệu MySQL.
Chúng tôi sẽ sử dụng todoapp
cơ sở dữ liệu để trình diễn, do đó, bạn nên tạo cơ sở dữ liệu trong máy chủ cơ sở dữ liệu MySQL của mình bằng cách chạy CREATE DATABASE
câu lệnh sau:
CREATE DATABASE todoapp;
Ngôn ngữ mã: SQL (Ngôn ngữ truy vấn có cấu trúc) ( sql )
Sau khi cơ sở dữ liệu được tạo, bạn đã sẵn sàng kết nối với nó từ ứng dụng Node.js.
Kết nối với máy chủ cơ sở dữ liệu MySQL từ node.js
Đầu tiên, nhập mysql
mô-đun bằng cách sử dụng câu lệnh sau:
let mysql = require('mysql');
Ngôn ngữ mã: JavaScript ( javascript )
Thứ hai, tạo kết nối đến cơ sở dữ liệu MySQL bằng cách gọi createConnection()
phương thức và cung cấp thông tin chi tiết về máy chủ MySQL như máy chủ, người dùng, mật khẩu và cơ sở dữ liệu như sau:
let connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'todoapp' });
Ngôn ngữ mã: JavaScript ( javascript )
Trong ví dụ này, chúng tôi đã tạo một kết nối tới todoapp
cơ sở dữ liệu trong máy chủ cơ sở dữ liệu cục bộ.
Thứ ba, gọi connect()
phương thức trên connection
đối tượng để kết nối với máy chủ cơ sở dữ liệu MySQL:
connection.connect(function(err) { if (err) { return console.error('error: ' + err.message); } console.log('Connected to the MySQL server.'); });
Ngôn ngữ mã: JavaScript ( javascript )
Phương connect()
thức chấp nhận hàm gọi lại có err
đối số cung cấp lỗi chi tiết nếu có lỗi xảy ra.
Hãy chạy thử connect.js
chương trình.
> node connect.js Connected to the MySQL server
Ngôn ngữ mã: JavaScript ( javascript )
Nếu bạn thấy thông báo “đã kết nối với máy chủ MySQL”, thì xin chúc mừng, bạn đã kết nối thành công với máy chủ cơ sở dữ liệu MySQL từ ứng dụng node.js.
Giả sử todoapps
cơ sở dữ liệu không tồn tại trong máy chủ cơ sở dữ liệu và bạn cố gắng kết nối với nó, bạn sẽ nhận được thông báo lỗi:
> node connect.js error: ER_BAD_DB_ERROR: Unknown database 'todoapps'
Ngôn ngữ mã: JavaScript ( javascript )
Lưu ý rằng mọi phương thức mà bạn gọi trên connection
đối tượng đều được xếp hàng và thực thi theo trình tự.
Đóng kết nối cơ sở dữ liệu
Để đóng kết nối cơ sở dữ liệu một cách duyên dáng, bạn gọi end()
phương thức trên connection
đối tượng.
Phương end()
pháp đảm bảo rằng tất cả các truy vấn còn lại luôn được thực hiện trước khi đóng kết nối cơ sở dữ liệu.
connection.end(function(err) { if (err) { return console.log('error:' + err.message); } console.log('Close the database connection.'); });
Ngôn ngữ mã: JavaScript ( javascript )
Để buộc đóng kết nối ngay lập tức, bạn có thể sử dụng destroy()
phương pháp. Phương destroy()
thức này đảm bảo rằng sẽ không có thêm cuộc gọi lại hoặc sự kiện nào được kích hoạt cho kết nối.
connection.destroy();
Ngôn ngữ mã: JavaScript ( javascript )
Lưu ý rằng destroy()
phương thức không nhận bất kỳ đối số gọi lại nào như end()
phương thức.
kết nối tổng hợp
Trình điều khiển MySQL cho mô-đun node.js cung cấp cho bạn tính năng tổng hợp kết nối được tích hợp sẵn. Giả sử, bạn muốn tạo một nhóm kết nối với 5 kết nối:
var pool = mysql.createPool({ connectionLimit: 5, host: 'localhost', user: 'root', password: '', database: 'todoapp' });
Ngôn ngữ mã: JavaScript ( javascript )
Để có kết nối từ nhóm, bạn sử dụng getConnection()
phương thức:
pool.getConnection(function(err, connection) { });
Ngôn ngữ mã: JavaScript ( javascript )
Để trả lại một kết nối đến nhóm sau khi bạn hoàn thành nó, bạn có thể gọi phương thức connection.release()
. Sau đó, kết nối sẽ khả dụng trong nhóm và sẵn sàng để người khác sử dụng lại.
pool.getConnection(function(err, connection) { connnection.release(); });
Ngôn ngữ mã: JavaScript ( javascript )
Để đóng một kết nối và xóa nó khỏi nhóm, bạn sử dụng connection.destroy()
phương thức này. Một kết nối mới sẽ được tạo trong nhóm nếu cần vào lần tới.
Điều quan trọng cần lưu ý là nhóm sẽ tạo kết nối một cách lười biếng. Ví dụ: nếu bạn định cấu hình nhóm có 5 kết nối nhưng bạn chỉ sử dụng 2 kết nối đồng thời, thì nhóm chỉ tạo 2 kết nối.
Để đóng tất cả các kết nối trong pool, bạn sử dụng end()
phương thức của pool
đối tượng như sau:
pool.end(function(err) { if (err) { return console.log(err.message); } });
Ngôn ngữ mã: JavaScript ( javascript )
Trong hướng dẫn này, bạn đã học cách kết nối với cơ sở dữ liệu MySQL từ ứng dụng node.js.