Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Node JS với Express và kết nối đến MySQL - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Bài viết này sẽ hướng dẫn bạn học Node.jsMySQL trong Node.js Express, kết hợp hai công nghệ này để xây dựng các ứng dụng web đa năng và mạnh mẽ. Chúng ta sẽ tìm hiểu về cách sử dụng Node.js để tương tác với cơ sở dữ liệu MySQL, từ việc thiết lập kết nối đến thực thi các truy vấn và xử lý dữ liệu. Bằng cách kết hợp sức mạnh của Node.js và MySQL, bạn sẽ có thêm một công cụ mạnh mẽ để phát triển các ứng dụng web tùy chỉnh và hiệu quả.

Tổng quan về Node.js Express và MySQL

MySQL là hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) phổ biến được sử dụng rộng rãi, tích hợp mạnh mẽ với ứng dụng Node.js Express, cung cấp khả năng lưu trữ và truy xuất dữ liệu mạnh mẽ. Sử dụng MySQL trong môi trường Node.js Express cho phép các nhà phát triển xây dựng ứng dụng web có khả năng mở rộng và hiệu suất cao một cách dễ dàng.

Một trong những ưu điểm chính của việc sử dụng MySQL với Node.js Express là tính tương thích và hỗ trợ cho SQL (Structured Query Language), ngôn ngữ chuẩn để quản lý cơ sở dữ liệu quan hệ. Điều này cho phép các nhà phát triển tận dụng kỹ năng và kiến thức SQL hiện có của mình để tương tác với cơ sở dữ liệu MySQL một cách hiệu quả.

Cài thư viện và init project trong môi trường Node.js Express

Về phần init project và cài thư viện cho node.js, 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 running node.js ở 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 node js 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.

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é .

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, blog¸ 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

Dưới đây là một minh họa cơ bản và rất đơn giản về cách truy xuất dữ liệu từ cơ sở dữ liệu trong học NodeJS. Trong tương lai, nếu có cơ hội, tôi sẽ mở rộng viết về cách hiển thị dữ liệu trên giao diện kết hợp với bảng, và thực hiện các hoạt động thêm, sửa, xóa dữ liệu (CRUD). Cảm ơn mọi người đã đọc bài viết này.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *