Đố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:
- 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 - req.baseUrl
Đường truyền URL mà trên đó một Router được gắn kết
- 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)
- 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
- 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.
- req.hostname
Chứa phần hostname từ phần "Host" của HTTP header.
- req.ip
Địa chỉ Remote IP của request.
- req.path
Chứa phần path của URL trong Request.
- req.protocol
Chuỗi protocol của Request, đó là "http" hoặc "https" khi tạo request với TLS
- 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
- req.route
Một chuỗi biểu diễn route hiện tại được kết nối
- req.secure
Là true nếu một kết nối TLS được thiết lập thành công
- 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
- 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.
- 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)
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)
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)
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"