NodeJS cơ bản cho người mới bắt đầu

Bài 16: NodeJS - Request

Đối tượng req biểu diễn HTTP Request và có các thuộc tính cho chuỗi truy vấn request, các tham số, body, HTTP Header, …
Trước khi vào chương, chúng ta tìm hiểu qua khái niệm Middleware là gì:
" Theo vi.wikipedia: Middleware là phần mềm máy tính với nhiệm vụ kết nối các thành phần phần mềm hoặc các ứng dụng với nhau. Phần mềm loại này bao gồm một tập các dịch vụ cho phép sự tương tác giữa các tiến trình chạy trên một hoặc nhiều máy khác nhau. "

Các thuộc tính Request trong Node.js

Bảng dưới liệt kê một số thuộc tính thường được sử dụng của đối tượng Request trong Node.js:
  1. req.app 
    Thuộc tính này giữ một tham chiếu tới ứng dụng Express đang sử dụng Middleware
  2. req.baseUrl 
    Đường truyền URL mà trên đó một Router được gắn kết
  3. req.body 
    Chứa các cặp key-value của dữ liệu được đệ trình trong phần body của Request. Theo mặc định, nó là undefined, và được sinh khi bạn sử dụng một Middleware để parse phần body của request (ví dụ body-parser)
  4. req.cookies 
    Khi sử dụng cookie-parser middleware, thuộc tính này là một đối tượng chứa các Cookie được gửi bởi Request
  5. req.fresh 
    Xác định xem có hay không Request là "fresh." Thuộc tính này trái ngược với req.stale.
  6. req.hostname 
    Chứa phần hostname từ phần "Host" của HTTP header.
  7. req.ip 
    Địa chỉ Remote IP của request.
  8. req.path 
    Chứa phần path của URL trong Request.
  9. req.protocol 
    Chuỗi protocol của Request, đó là "http" hoặc "https" khi tạo request với TLS
  10. req.query 
    Một đối tượng chứa một thuộc tính cho mỗi tham số chuỗi truy vấn trong Router
  11. req.route 
    Một chuỗi biểu diễn route hiện tại được kết nối
  12. req.secure 
    Là true nếu một kết nối TLS được thiết lập thành công
  13. req.signedCookies 
    Khi sử dụng cookie-parser Middleware, thuộc tính này chứa các Cookie được gửi bởi Request
  14. req.stale 
    Xác định xem có hay không Request là "stale", thuộc tính này trái ngược với thuộc tính req.fresh.
  15. req.subdomains 
    Một mảng bao gồm các subdomain trong phần tên domain của Request

Phương thức Request trong Node.js

Phương thức req.accepts(types)
req.accepts(types)
Phương thức này kiểm tra xem Content-type có phải là có thể chấp nhận không, dựa trên trường Accept HTTP Header của Request. Ví dụ:
// Accept: text/html 
req.accepts('html'); // => "html" // Accept: text/*, application/json 
req.accepts('html'); // => "html" 
req.accepts('text/html'); // => "text/html"
Phương thức req.get(field)
req.get(field)
Phương thức này trả về trường Header cụ thể của Request. Ví dụ:
req.get('Content-Type'); // => "text/plain" req.get('content-type'); // => "text/plain" req.get('Something'); // => undefined
Phương thức req.is(type)
req.is(type)
Phương thức này trả về true nếu trường Content-Type của Request đang đến là kết nối với kiểu MIME Type đã được xác định bởi tham số type. Ví dụ:
// With Content-Type: text/html; charset=utf-8 req.is('html'); req.is('text/html'); req.is('text/*'); // => true
Phương thức req.param(name [, defaultValue])
req.param(name [, defaultValue])
Phương thức này trả về giá trị của tham số name. Ví dụ:
// ?name=tobi req.param('name') // => "tobi" // POST name=tobi req.param('name') // => "tobi" // /user/tobi for /user/:name  req.param('name') // => "tobi"