Toidicode.com

Toidicode.com

BASIC TO ADVANCE

Bài 1: Kết nối Node.js đến mysql

1, Chuẩn bị.

- Để chuẩn bị cho series học Node.js & MySQL này thì các bạn sẽ cần phải chuẩn bị các kiến thức và phần mềm sau:

  • MySql database (ở đây mình sử dụng xampp luôn vì mình đã cài xampp rồi) và bạn phải có kiến thức về hệ quản trị cơ sở dữ liệu này.
  • Module mysql. Để cài đặt mysql các bạn cần chạy lệnh npm : npm i -s mysql

2, Kết nối node.js với mysql.

- Sau khi đã chuẩn bị được các phần mềm và kiến thức mình đã nêu ra ở trên rồi, thì bây giờ chúng ta bắt đầu viết code để kết nối node.js đến mysql.

Để kết nối node.js đến mysql chúng ta cần require module mysql mà chúng ta đã cài đặt (ở trên) theo cú pháp:

var mysql = require('mysql);

Cấu hình kết nối

-Tiếp đó chúng ta cần phải sử dụng phương thức createConnection trong module mysql để cấu hình kết nối đến mysql theo cú pháp:

var conn = mysql.createConnection({
    host    : hostName,
    user    : userName,
    password: password,
    database: databaseName,
    charset : charsetType
});

Trong đó:

  • hostName - là host database của các bạn.
  • userName - là user để đăng nhập vào mysql (nếu dùng xampp mặc định sẽ là admin).
  • password - là mật khẩu của user để đăng nhập vào mysql (nếu dùng xampp mặc định sẽ bỏ trắng).
  • database - là database các bạn cần kết nối (nếu không muốn cấu hình có thể bỏ trống).
  • charsetType - là kiểu charset. Mặc định thì charset = utf8_general_ci
  • và còn nhiều thông số khác nữa, bạn có thể tham khảo thêm tại đây.

Hoặc bạn cũng có thể kết nối đến MySQL dưới dạng string theo cú pháp:

var connection = mysql.createConnection('mysql://user:pass@host/db?charset=BIG5_CHINESE_CI&timezone=-0700');

Trong đó: Các tham số truyền vào có giá trị tương ứng như ở phần cấu hình object. và các param truyền theo sẽ được cấu hình cách nhau bởi dấu & (GET Method).

VD1: Cấu hình kết nối node.js đến mysql (thông số mặc định của xampp).

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node'
});

Thực hiện kết nối.

-Sau khi đã cấu hình xong thông tin config, bây giờ chúng ta sẽ sử dụng phương thức connect để tiến hành kết nối đến database theo cú pháp:

conn.connect();
//hoặc
conn.connect(function (err) {
    //code
});

Trong đó:

  • conn - là object mysql đã chứa thông tin kết nối database.
  • err - là biến chứa thông tin lỗi nếu có.

 VD2: Kết nối đến database và in ra lỗi nếu có.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node'
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    console.log('ket noi thanh cong');
    
});

Lúc này nếu như thông số bạn điền đúng thì chương trình sẽ trả về kết quả:

ket noi thanh cong

Đóng kết nối.

Để đóng kết nối Node.js với MySQL thì mọi người sử dụng phương thức end với cú pháp như sau:

conn.end();
//hoặc
conn.end(function (err) {
    //
});

Trong đó:

  • conn - là object mysql đã chứa thông tin kết nối database.
  • err - là biến chứa thông tin lỗi nếu có.

VD3: Đóng kết nối Node.js với MySQL.

conn.end(function (err) {
    if (err) throw err;
    console.log('dong ket noi thanh cong');
});

3, Lời kết.

- Trên thực tế thì tham số truyền vào phương thức connect có thể là một callback function (giống như thêm event trong node.js), nhưng chúng ta không nên sủ dụng cách đó ở đây vì nó khó quản lý source hơn.

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

6 Comments

- Anh ơi sao em không dùng được mysql của xampp ạ 

Hiếu

7 năm trước

Nó báo lỗi như nào thế bạn?

Vũ Thanh Tài

7 năm trước

bạn cài xampp chưa

Tùng

6 năm trước

Anh ơi cho em hỏi. Dùng trên xampp được mà khi deploy lên heroku còn mySQL đưa lên awardspace thì k lấy được dữ liệu ạ. Vẫn ra trang trang k có dữ liệu nào được lấy từ db hết

tải nodejs về cài đặt và chạy lệnh kia là đk à bạn 

lailoc

4 năm trước

Chào bạn, bạn cần kiểm tra xem máy bạn đã cài npm chưa đã nhé

https://dev.toidicode.com/npm-trong-node-js-178.html

Vũ Thanh Tài

4 năm trước

Bình luận

Captcha