Tham số Express, Yêu cầu

Tham chiếu hữu ích đến tất cả các thuộc tính đối tượng yêu cầu và cách sử dụng chúng

Yêu cầu tham số

Tôi đã đề cập đến cách đối tượng Yêu cầu giữ tất cả thông tin yêu cầu HTTP.

Đây là những thuộc tính chính mà bạn có thể sẽ sử dụng:

Bất động sản Sự miêu tả
.app giữ một tham chiếu đến đối tượng ứng dụng Express
.baseUrl đường dẫn cơ sở mà ứng dụng phản hồi
.thân hình chứa dữ liệu được gửi trong phần nội dung yêu cầu (phải được phân tích cú pháp và điền theo cách thủ công trước khi bạn có thể truy cập)
.bánh quy chứa các cookie được gửi theo yêu cầu (cầncookie-parserphần mềm trung gian)
.hostname tên máy chủ như được xác định trongTiêu đề HTTP máy chủgiá trị
.ip IP của khách hàng
.phương pháp phương thức HTTP được sử dụng
.params các tham số có tên tuyến đường
.con đường đường dẫn URL
.protocol giao thức yêu cầu
.truy vấn một đối tượng chứa tất cả các chuỗi truy vấn được sử dụng trong yêu cầu
.đảm bảo true nếu yêu cầu an toàn (sử dụng HTTPS)
.signedCookies chứa các cookie đã ký được gửi theo yêu cầu (cầncookie-parserphần mềm trung gian)
.xhr đúng nếu yêu cầu là mộtXMLHttpRequest

Cách truy xuất các tham số chuỗi truy vấn GET bằng Express

Chuỗi truy vấn là phần đứng sau đường dẫn URL và bắt đầu bằng dấu chấm hỏi?.

Thí dụ:

?name=flavio

Nhiều tham số truy vấn có thể được thêm vào bằng cách sử dụng&:

?name=flavio&age=35

Làm cách nào để bạn nhận được các giá trị chuỗi truy vấn đó trong Express?

Express làm cho nó trở nên rất dễ dàng bằng cách điền vàoRequest.queryđối tượng cho chúng tôi:

const express = require('express')
const app = express()

app.get(’/’, (req, res) => { console.log(req.query) })

app.listen(8080)

Đối tượng này chứa một thuộc tính cho mỗi tham số truy vấn.

Nếu không có tham số truy vấn, đó là một đối tượng trống.

Điều này giúp bạn dễ dàng lặp lại nó bằng cách sử dụng vòng lặp for… in:

for (const key in req.query) {
  console.log(key, req.query[key])
}

Thao tác này sẽ in khóa thuộc tính truy vấn và giá trị.

Bạn cũng có thể truy cập các thuộc tính đơn lẻ:

req.query.name //flavio
req.query.age //35

Cách truy xuất các tham số chuỗi truy vấn POST bằng Express

Các tham số truy vấn POST được gửi bởi các máy khách HTTP, chẳng hạn như biểu mẫu hoặc khi thực hiện yêu cầu POST gửi dữ liệu.

Làm thế nào bạn có thể truy cập dữ liệu này?

Nếu dữ liệu được gửi dưới dạngJSON, sử dụngContent-Type: application/json, bạn sẽ sử dụngexpress.json()phần mềm trung gian:

const express = require('express')
const app = express()

app.use(express.json())

Nếu dữ liệu được gửi bằngContent-Type: application/x-www-form-urlencoded, bạn sẽ cần sử dụngexpress.urlencoded()phần mềm trung gian:

const express = require('express')
const app = express()

app.use(express.urlencoded({ extended: true }))

Trong cả hai trường hợp, bạn có thể truy cập dữ liệu bằng cách tham chiếu nó từRequest.body:

app.post('/form', (req, res) => {
  const name = req.body.name
})

Lưu ý: các phiên bản Express cũ hơn yêu cầu sử dụngbody-parsermô-đun xử lý dữ liệu POST. Điều này không còn xảy ra như Express 4.16 (phát hành vào tháng 9 năm 2017) và các phiên bản mới hơn.

Tải xuống miễn phí của tôiSổ tay Express.js


Các hướng dẫn nhanh hơn: