Tạo một ứng dụng nhỏ sử dụng server là Nodejs và DB là Mysql (Phần 1)

976
tạo ứng dụng với Nodejs và MySQL

Mở đầu

Nếu như là một developer fullstack thì chắc hẳn bạn cũng biết được rằng việc phát triển một ứng dụng web người ta quan tâm rất nhiều tốc độ xử lý của một hệ thống. Ngày nay, các hệ thống đang cạnh tranh nhau không chỉ là giao diện, logic xử lý mà người ta quan tâm đến tốc độ của hệ thống nào sẽ đáp ứng yêu cầu nhanh nhất.

Một ứng dụng web bao gồm client và server. Client là nơi mà HTML, CSS, JS chạy trên 1 chương trình đó là Brower. Server là nơi xử lý logic, các request mà user gởi về. Từ xưa mô hình này vẫn ổn nhưng với công nghệ 4.0 như hiện nay thì mô hình này sẽ bị chậm đi nếu có hàng ngàn request gởi về trong thời điểm.

Để giải quyết vấn đề trên người ta đã dùng rất nhiều cách đó là tối ưu DB, sử dụng các no-sql, tăng băng thông cho server, … Nhưng cách giải quyết hiện nay được cho là tốt nhất đó là chuyển dần xử lý về phía client tức là mọi xử lý sẽ được thực hiện trên client trước khi đưa đến server. Hiện nay các framework frontend rất được sử dụng rộng rãi trong các dự án gần đây đó là vuejs, reactjs, nodejs,…

Sau đây mình xin được hướng dẫn cho các bạn mới tìm hiểu về cách giải quyết này bằng cách sử dụng nodejs. Vì sao mình lại chọn nodejs vì nó có thể kết nối DB, và cũng có thể làm việc với view. Ở những bài về sau mình sẽ không cấu trúc lại bằng mô hình MVC nổi tiếng hiện nay. Vì đây là dùng cho các bạn mới học nên mình việc đơn giản cho các bạn dễ hiểu về sau mình sẽ dần mô hình hoá theo MVC. Xem thêm Node.js thật sự là gì?

Chúng ta sẽ cùng tạo một ứng dụng đơn giản quản lý books sử dụng nodejs, view thì mình dùng ejs, DB là Mysql để hiểu được luồn hoạt động trong nodejs như thế nào nhé. Nào chúng ta cùng bắt đầu nào.

DDL của ứng dụng này như sau:

Cấu trúc của thư mục của project này:

Để có thể làm quen với project này các bạn phải install đầy đủ các thư viện sau: Trước hết các bạn hãy chạy câu lệnh sau:

Kết nối với Mysql bằng Nodejs

Để kết nối với Mysql nói riêng và các hệ quản trị cơ sở dữ liệu khác như SQL, … cũng tương tự. Ở file server.js

  SQL Injection là gì? Cách giảm thiểu và phòng ngừa SQL Injection
  Tối ưu hoá MySQL sử dụng việc gộp các index

–> Sau đó các bạn chạy câu lệnh sau để xem kết quả nhé

Bạn xem ở terminal nếu thành công thì nó sẽ output

Hướng dẫn lấy danh sách book từ DB sử dụng nodejs và ejs

Bước 1: Các bạn tạo 1 file nằm ở đường dẫn sau: /view/index.ejs.

Bước 2: Ở file server.js bạn thêm

Mình xin giải thích một chút về file server.js này Để đưa dữ liệu từ nodejs sang view chúng ta cần dùng đến 1 thư viện là fs dùng để đọc file trong nodejs. Rồi mình dùng ejs để render view ra như bình thường.

Nhưng muốn in nó lên view browser thì bạn sử dụng đoạn code sau:

Để connect làm việc với DB thì bạn chỉ cần truyền câu sql vào như sau:

Kết quả khi bạn truy cập vào đường link http://localhost:8000/books

Kết thúc

Trong bài tới mình sẽ hướng dẫn các bạn insert, update, delete books. Vì thời gian có hạn nên mình xin giới thiệu các bạn đến đây mong các bạn có thể tự làm một ứng dụng cho riêng mình!

TopDev via viblo

  Nhập môn Nodejs API (Authentication - CRUD) cho người mới học
  Xử lí bất đồng bộ song song trong Node.js