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!
- 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
7 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
Nguyễn Lê Trọng Đạt
5 năm trước
tải nodejs về cài đặt và chạy lệnh kia là đk à bạn
lailoc
5 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
5 năm trước