+650 votes
,post bởi

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-mysqlvà sử dụng npm initlệnh để tạo package.jsontệ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.jsbên trong node-mysqlthư 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 todoappcơ 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 DATABASEcâ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 mysqlmô-đ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 todoappcơ 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.jschươ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ử todoappscơ 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) { // execute query // ... });

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) { // execute query // ... 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); } // close all connections });

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.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.
...