Làm quen với Node.js: Xây dựng web server đơn giản

Tram Ho

Chào các bạn!
Mình lại tiếp tục với loạt bài viết làm quen với Node.js.
Hôm nay, mình sẽ giới thiệu đến các bạn cách xây dựng một webserver đơn giản với Node.js.
Và cũng sẽ kết thúc loạt bài làm quen với Node.js ở đây. Mình sẽ tiếp tục với loạt bài mới về sử dụng web framework Express.

1. Xây dựng web server đơn giản:

Mình tạo module app.js. Mình sử dụng module HTTP để tạo một server đơn giản.

Chạy module app.js trên terminal và mở browser nhập địa chỉ localhost:3000, chúng ta sẽ thấy xuất hiện dòng chữ Hello, I’m a Node js Server. Như vậy, mình đã thành công trong việc tạo một web server đơn giản rồi. :>
Giờ, mình sẽ tạo một file html để trả về cho client thay vì một plain-text như trên. Tạo file index.html, ở cùng cấp với app.js, đồng thời chỉnh sửa lại nội dung trong response như sau:

Về cơ bản, cách xử lý cũng không khác gì mấy. Tuy nhiên, ở đây thay vì content-type: text/plain-text sẽ là text/html. Đồng thời, mình đọc nội dung file html và trả về kết quả trong response.
Tắt và chạy lại app.js, reload lại trang localhost:3000 trên browser, lúc này, chúng ta có một giao diện với nội dung trả về từ file html trên.
Tiếp theo, mình sẽ nâng cấp lên mức độ đơn giản lên phức tạp một chút và làm ứng dụng web tra cứu biến số xe Việt Nam nhé.

2. Xây dựng web app đơn giản “Tra cứu biển số xe Việt Nam”:

Để mang tính thực tế hơn, mình xây dựng web server đơn giản dùng tra cứu biển số xe Việt Nam. Trước hết mình cũng tạo module app.js, file index.html (giao diện), file vehicle_plates.json.
Giao diện sử dụng bootstrap 4, jquery 3.4.1, select2.js để thực hiện các chức năng trên giao diện chính. Code giao diện như sau:


Sau khi xong phần giao diện, mình tiến hành xử lý bên server. Code module app.js:

Cấu trúc của web app như sau:

  • Về routes: Sẽ trả về giao diện chính nếu request đến root “/” hoặc “/index.html”. 2 routes dùng để xử lý request ajax client lấy thông về cities để lựa chọn trên select2 và tìm kiếm thông tin biển số xe theo thành phố được lựa chọn ở client. Và 1 route dùng hứng mọi request nằm ngoài các routes (đã nêu). Trong routes, mình không thực hiện check method gọi đến là GET/POST/… để đơn giản hóa ứng dụng.
  • Về các functions:
    • Gồm function xử lý thêm id cho dữ liệu json, nhằm thuận tiện cho việc tìm kiếm biển số xe.
    • Function xử lý lấy params được truyền lên bằng ajax POST request.
    • Function xử lý tìm kiếm biển số xe theo id của thành phố được lựa chọn.
      Khởi chạy ứng dụng và chúng ta có 1 web app đơn giản để tra cứu biển số xe.

3. Lời kết:

Cảm ơn các bạn đã theo dõi loạt bài viết làm quen với Node.js suốt thời gian qua.
Qua loạt bài viết làm quen này sẽ giúp các bạn có được một vài nền tảng kiến thức trước khi bước vào loạt bài với về Web Framework Express cho Node.js.

Bài viết không thể tránh khỏi những sai xót, mong nhận được góp ý của các bạn để bài viết được hoàn thiện hơn. Cảm ơn các bạn.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo