Tổng quanXin chào các bạn, như lần trước mình đã giới thiệu cho các bạn directive dndLists trong angular và sử dụng nó để tạo ra một bản KANBAN. Các bạn có thể xem lại bài viết đó tại đây nếu như các bạn chưa biết. Hôm nay mình sẽ tiếp tục viết bài về việc sử dụng MySQL trong NodeJS Express. Cài thư viện và init projectVề phần init project và cài thư viện, các bạn có thể xem chi tiết ở bài
viết trên nhé. Chúng ta sẽ chạy các lệnh sau: npm init
npm install express --save
npm install mysql --save
Bắt đầu codeĐầu tiền, chúng ta cần tạo một file script server.js hay tên gì bất kì, với nội dung như sau: var express = require('express');
var app = express();
app.listen(3000,function(){
console.log('Node server running @ http://localhost:3000')
});
Sau đó mở lại terminal và gõ lệnh node server.js (server.js chính là tên file của các bạn nhé). Nếu như log trên terminal có nội dung là "Node server running @ http://localhost:3000", có nghĩa là mọi thứ đang OK rồi đấy. Các bạn có thể thay đổi port ở trên nếu bị
trùng nhé! Tiếp theo, chúng ta sẽ kết nối với database nhé. Đầu tiên, chúng ta thêm dòng code này vào nhé: var mysql = require('mysql');
Tiếp theo chúng ta sẽ tạo kết nối với MySQL bằng những dòng lên sau: var con = mysql.createConnection({
host: "localhost",
user: "your_user",
password: "your_password",
database: "your_database"
});
Để kiểm tra xem, chúng ta có kết nối với database được hay không, bạn có thể sử dụng đoạn lệnh sau: con.connect(function(err) {
if (err) throw err;
console.log("Connected!!!")
});
Mở terminal và chạy lại node server.js , sau đó check log là "Connected" hay một đống lỗi nhé :kiss_mm:. Bây giờ chúng ta sẽ tạo một database trong đó bao gồm một bảng tasks
gồm các field như id , name , label nhé. Các bạn cũng có thể tạo giả vài record trong bảng này. Bây giờ chúng ta sẽ truy vấn đến bảng tasks vừa tạo để lấy các record trong đó qua đoạn lệnh sau: con.connect(function(err) {
if (err) throw err;
var sql = "SELECT * FROM tasks";
con.query(sql, function(err, results) {
if (err) throw err;
console.log(results);
})
});
Bây giờ chạy lại node server.js và cùng xem dữ liệu log ở terminal có giống với dữ liệu trong database mà bạn vừa tạo không nhé :kiss_mm:. Việc lấy data đã xong, bây giờ chúng ta sẽ hiển thị những data đó ra view xem nhé. Hãy tạo trong thư mục một file html, ví dụ như
home.html . Sau đó quay lại file server.js để tạo một route mới bằng đoạn code sau: app.get('/public/home.html', function (req, res) {
var sql = "SELECT * FROM tasks";
con.query(sql, function(err, results) {
if (err) throw err;
res.send(results);
});
});
Ở đây, mình tạo một thư mục public để chứa file home.html , nên trong route mình sẽ khai báo như vậy. Cụ thể hơn, route này sẽ có method là GET , và sau khi thực hiện truy vấn nó sẽ trả về kết quả lấy được từ database và hiển thị lên trang home.html . Dưới đây là đoạn code full của mình nhé var mysql = require('mysql');
var express = require('express');
var app = express();
app.listen(3000,function(){
console.log('Node server running @ http://localhost:3000')
});
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "123456",
database: "mydb"
});
app.get('/public/home.html', function (req, res) {
var sql = "SELECT * FROM tasks";
con.query(sql, function(err, results) {
if (err) throw err;
res.send(results);
});
});
Cuối cùng, các bạn mở terminal lên và chạy node server.js , sau đó mở trình duyệt, truy cập
vào http://localhost:3000/public/home.html (lưu ý chỉnh port , và đường dẫn đến file home.html nhé) và xem kết quả. Kết luậnTrên đây, chỉ là một ví dụ cơ bản và vô cùng đơn giản về việc lấy dữ liệu từ database trong NodeJS, nếu có dịp mình sẽ viết thêm về cách hiển thị ra view kết hợp với bảng KANBAN ở bài trước và thực hiện các thao tác CRUD nhé! Cảm ơn các bạn đã tham khảo bài viết này :kiss_mm:.
Đã đăng vào thg 10 9, 2020 9:24 SA 4 phút đọc
Mở đầuXin chào các bạn mình đã quay trở lại rồi đây, tiếp tục với series về Nodejs cơ bản thì trong bài viết này mình sẽ giới thiệu đến mọi người về cách cài đặt và kết nối mysql vào nodejs. Tiến hànhCài mysqlĐể kết nối được được mysql thì chúng ta phải có
mysql đã đúng không . Bạn có thể cài workbench hoặc cài mysql trực tiếp bằng terminal như mình :v .Vì bài này chủ yếu nói về kết nối mysql trong Nodejs nên mình xin phép chỉ trình bày cách cài mysql trên ubuntu thôi nhé :v - Đầu tiên là bạn cần cập nhật apt package bằng lệnh
sudo apt update
- tiếp
theo là cài đặt
Mysql
sudo apt install mysql-server mysql-client -y
sudo mysql_secure_installation
để tăng tính bảo mật cho mysql hơn, cái này mình cũng không rõ lắm nếu bạn nào biết thì hãy comment xuống bên dưới để mình bổ sung nhé. Các bạn cứ ấn y đến khi nó hiện là All done! là được - tiếp theo đăng nhập bằng root bạn chạy lệnh
sudo mysql
rồi chạy tiếp lệnh ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
Trong đó your_password là
pass mà bạn muốn đặt. OK bây giờ banj hãy thử chạy lệnh mysql -u root -p
rồi nhập password vừa đổi ở phía trên xem, chạy tiếp lệnh show databases;
hiện ra như này là ok . Tiếp theo chúng ta sẽ tạo một database để kết nối với Nodejs , Đơn giản thôi bạn chỉ cần
chạy lệnh nàycreate database dbTest;
là đã tạo được một db mới rồi :v. lưu ý dbTest ở đây chính là tên của database. Các bạn có thể tham khảo thêm các câu lệnh thao tác với mysql ở đây nhé. Kết nối mysql với NodejsĐể kết nối được với mysql thì chúng ta cần cài đặt module MYSQL vẫn như những bài trước thôi để cài đặt một module chúng ta chỉ cần chạy lệnh yarn add mysql --save
Tiếp theo ở file index.js chúng ta
sẽ require module mysql vào. Thực hiện khai báo vào kết nối như sau : var conn = mysql.createConnection({
host :'localhost',
user : 'root',
password : '',
database: 'dbTest',
charset : 'utf8_general_ci'
});
conn.connect(function (err){
if(err)
{
throw err.stack;
}
else
console.log("connect success");
})
Đầu tiên là sẽ khai báo host, user, password (nếu có), tên database, kiểu unicode. Tiếp theo là hàm connect ở đây mình thực hiện kết nối nếu có lỗi thì in lỗi ra còn không thì sẽ log ra connect success . Tạo bảngNhư các bạn đã biết thì những bài trước mình có sử dụng mảng để lưu data vì thế khi ấn f5 lại sẽ bị mất các record vừa được thêm vào, nhưng trong bài hôm nay thì chúng ta đã kết nối được với cơ
sở dữ liệu rồi thì đó không còn là vấn đề nữa . Bây giờ chúng ta sẽ tạo một bảng posts để thay thế Mảng posts mà những bài trước chúng ta hay sử dụng nhé. Đầu tiên mình sẽ khai báo một câu sql như sau :var sql = "create table posts" +
" (id int not null AUTO_INCREMENT," +
" title varchar(225)," +
" PRIMARY KEY (id) )";
tạo bảng posts với 2 trường là id kiêu int, tự động tăng, là khóa chính, và trường title có kiểu dữ liệu là varchar. Tiếp theo chỉ cần vết hàm để chạy câu sql kia là được. conn.query(sql, function(err) {
if(err)
{
throw err;
}
else
console.log("Create table success");
})
Xem
trên terminal hiện Create table success là đã taọ bảng thành công nhé Kết luậnVậy là ở bài viết này mình đã giới thiệu đến các bạn cách cài đặt mysql trên ubuntu và cách kết nối mysql với nodejs . Ở bài tiếp theo mình sẽ thực hiện các chức năng sửa dữ liệu, sửa xóa bảng, và sửa lại chức năng thêm mới ở bài trước. Bài viết còn phần nào thiếu sót rất mong các bạn comment xuống bên dưới để mình được bổ sung, nếu
thấy bài viết hữu ích thì hãy cho mình một upvote nhé , Ấn follow để có thể theo dõi được những bài viết mới nhất của mình nhé. Một lần nữa xin cảm ơn các bạn !!! All rights reserved |