Node.js 05 – Module HTTP

0
132

Với Node.js để có thể tạo ra web application chúng ta không phải chỉ có việc triển khai ứng dụng của mình là được, mà chúng ta phải triển khai toàn bộ máy chủ HTTP.
Vì vậy Module HTTP cho phép chúng ta có thể tạo ra các máy chủ HTTP trong ứng dụng của mình.

Xây dựng máy chủ HTTP cơ bản

Trước tiên để bắt đầu tìm hiểu về module HTTP hoạt động như thế nào thì chúng ta cùng chạy 1 ví dụ đơn giản.
Ở đây tôi có 1 đoạn code đơn giản dùng để tạo server cơ bản ở trong Node.js.

Bây giờ các bạn hãy tạo 1 file với tên server.js ở thư mục gốc project của bạn và đưa đoạn code bên trên vào.

Tiếp theo hãy lưu nó lại và tiến hành mở command line tại thư mục gốc với lệnh.

Cuối cùng, hãy mở trình duyệt của bạn và truy cập vào địa chỉ http://localhost:8000  . Trên trình duyệt sẽ xuất hiện nội dung sau.

Nếu nhìn thấy hiện thị như thế này tức là các bạn đã tạo ra được cho mình một máy chủ hoạt động trên Node.js rồi đấy.  Phần tiếp theo tôi sẽ phân tích cho các bạn hiểu về cách hoạt động của module HTTP này nhé.

Phân tích máy chủ HTTP

Ở dòng đầu tiên của đoạn code trên, tôi yêu cầu module HTTP của Node.js và làm cho nó có thể truy cập được thông qua biến http.

Sau đó tôi gọi một trong những chức năng mà module này cung cấp: createServer . Hàm này trả về một đối tượng, đối tượng này có 1 phương thức là listen, và nhận vào tham số là cổng mà máy chủ HTTP sẽ lắng nghe.

Với đoạn mã này sẽ làm cho máy chủ của chúng ta nghe được tại cổng 8000 thế nhưng máy chủ của chúng ta vẫn chưa thể hoạt động được với đoạn mã này.

Bây giờ để máy chủ của chúng ta thực sự hoạt động và phản hồi các yêu cầu của người dùng , chúng ta sẽ phải truyền vào trong hàm createServer một tham số đó là một hàm ẩn danh với 2 tham số.

  • tham số thứ nhất: request chứa những thông tin của người dùng gửi lên
  • tham số thứ hai: response chứa những thông tin mà chúng ta muốn trả về để đáp ứng yêu cầu của request đó.

Truyền hàm cho máy chủ hoạt động

Bên trong hàm ẩn danh sẽ có 2 tham số là resquest (đại diện cho các thông tin của người dùng gửi lên) còn response (đại diện cho thông tin server trả về).

Nhìn vào ví dụ đầu tiên các bạn sẽ thấy response tôi có sử dụng 2 phương 3 phương thức đó là writeHead, write, end

Phương thức writeHead

Phương thức writeHead dùng để thiết lập header phản hồi cho các yêu cầu của request.

Trong đó:

  • statusCode : Mã trạng thái phản hồi, mã trạng thái tham khảo <Number>
  • statusMessage: Lời nhắn của trạng thái <String>
  • headers: là các tiêu đề phản hồi của máy chủ, các bạn có thể tìm hiểu thêm về HTTP header tại đây <Object>

Phương thức write

Phương thức này thiết lập nội dung mà server muốn trả về cho trình duyệt, nội dụng này có thể là text đơn thuần hoặc code HTML.

Cú pháp:

Trong đó:

  • content: Nội dung muốn trả về trình duyệt
  • encoding: Loại mã hóa ký tự. Mặc định UTF-8

Ví dụ: trả về trình duyệt nội dung “Chào mừng các bạn đến với Node.js của học viện công nghệ VietPro” và được bao trong thẻ <b>

Phương thức end

Phương thức này thông báo tất cả phản hồi đã được gửi. và phương thức này phải được gọi trên mỗi response.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây