Kết nối nodejs với mysql

Tổng quan

Xin 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 project

Về 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ận

Trê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:.

Kết nối nodejs với mysql

Đã đăng vào thg 10 9, 2020 9:24 SA 4 phút đọc

Kết nối nodejs với mysql

Mở đầu

Xin 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ành

Cài mysql

Để kết nối được được mysql thì chúng ta phải có mysql đã đúng không

Kết nối nodejs với mysql
. Bạn có thể cài workbench

Kết nối nodejs với mysql

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
  • Tiếp theo là chạy lệnh
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

Kết nối nodejs với mysql

  • 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;

Kết nối nodejs với mysql

hiện ra như này là ok

Kết nối nodejs với mysql
. 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ày

create 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ảng

Như 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

Kết nối nodejs với mysql
. 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 nối nodejs với mysql

Kết luận

Vậ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é

Kết nối nodejs với mysql
, Ấ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