- vừa được xem lúc

Sử dụng MySQL với Node JS Express

0 0 57

Người đăng: Nguyen Ngoc Quyen

Theo Viblo Asia

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

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 521

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 393

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 725

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 353

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 443

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 431