Thứ ba, 28/05/2019 | 00:00 GMT+7

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.queryreq.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:

Giải phẫu 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')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 .


Tags:

Các tin liên quan