Hiểu đối tượng yêu cầu trong Express.js
Express.js là khung server phổ biến nhất vì nó cung cấp một bản tóm tắt thân thiện với nhà phát triển của module http
cốt lõi trong Node.js. Nó giống như sử dụng jQuery thay vì document.querySelectorAll
vì nó cho phép bạn, nhà phát triển, làm việc hiệu quả hơn!
Đối tượng req
trong Express.js cho phép bạn kiểm tra mọi khía cạnh về yêu cầu mà khách hàng đưa ra (cho dù bằng trình duyệt, bằng cURL hay trình duyệt di động, v.v.). Điều này bao gồm rất nhiều thứ như URL, chuỗi tác nhân user , dữ liệu JSON, dữ liệu biểu mẫu… Rất nhiều! Trong bài đăng này, bạn sẽ tìm hiểu những điều cơ bản về đối tượng req
trong Express.js.
Bài viết này không trình bày chi tiết đầy đủ về req
mà thay vào đó cung cấp tổng quan về các khía cạnh phổ biến nhất của req
. Và bạn có thể đọc bài đăng này để tìm hiểu về đối tượng response ( res
).
Để xem tài liệu toàn diện cho đối tượng req
, hãy truy cập tài liệu chính thức .
Dữ liệu do user cung cấp
Có ba cách chính để ứng dụng Express.js nhận dữ liệu do user cung cấp: req.params
, req.query
và req.body
.
req.params
// GET https://swamp.com/user/50d154c157981ef2 app.get('/:userid', (req, res) => { console.log(req.params.userid) // "50d154c157981ef2" })
req.query
Truy cập chuỗi truy vấn trong URL. Nhiều khi bạn sẽ thấy chức năng tìm kiếm, lọc và sắp xếp sử dụng các chuỗi truy vấn:
// GET https://swamp.com/search?keyword=louisiana-swamps app.get('/search', (req, res) => { console.log(req.query.keyword) // "louisiana-swamps" })
req.body
Cho phép bạn truy cập dữ liệu JSON đã được gửi trong yêu cầu. Thường được sử dụng trong các yêu cầu POST / PUT để gửi JSON có độ dài tùy ý đến server :
// POST https://swamp.com/login // // { // "email": "sam@gmail.com", // "password": "chompz4lyfe" // } app.post('/login', (req, res) => { console.log(req.body.email) // "sam@gmail.com" console.log(req.body.password) // "chompz4lyfe" })
Kiểm tra URL
Hình ảnh SVG sau phân tích cấu trúc của một URL:
// https://mossy.swamp.com/alabama?filter=very-humid app.get('/alabama', (req, res) => { console.log(req.protocol) // "https" console.log(req.hostname) // "swamp.com" console.log(req.path) // "/alabama" console.log(req.originalUrl) // "/alabama?filter=very-humid" console.log(req.subomains) // "['mossy']" })
Bạn có thể dễ dàng truy cập các phần khác nhau của URL bằng cách sử dụng các thuộc tính tích hợp này. Hầu hết trong số này là đơn giản trừ các domain phụ req.subdomains
sự cung cấp cho bạn một mảng vì bạn có thể có nhiều domain phụ. Ví dụ: https://secure.mossy.swamp.com
sẽ trả về ['mossy', 'secure']
.
Thuộc tính req
bổ sung
req.method
Truy cập phương thức HTTP (GET, POST, PUT, DELETE) bằng req.method
.
app.delete('/', (req, res) => { console.log(req.method) // "DELETE" })
req.header()
Truy cập các tiêu đề được gửi trong yêu cầu:
app.post('/login', (req, res) => { req.header('Content-Type') // "application/json" req.header('user-agent') // "Mozilla/5.0 (Macintosh Intel Mac OS X 10_8_5) AppleWebKi..." req.header('Authorization') // "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." })
Đối số cho req.header
không phân biệt chữ hoa chữ thường nên bạn có thể sử dụng req.header('Content-Type')
và req.header('content-type')
thay thế cho nhau.
req.cookies
Nếu bạn đang sử dụng cookie-parser để phân tích cú pháp cookie, nó sẽ lưu trữ nó trong req.cookies
:
// Cookie sessionDate=2019-05-28T01:49:11.968Z req.cookies.sessionDate // "2019-05-28T01:49:11.968Z"
Kết thúc
Đây là bạn có nó! Đây là những cách phổ biến nhất mà req
được sử dụng trong Express.js. Nếu bạn muốn xem tài liệu chính thức về req
vui lòng truy cập tài liệu chính thức của Express.js .
Các tin liên quan