🥸What are express.json() and express.urlencoded()?
https://stackoverflow.com/questions/23259168/what-are-express-json-and-express-urlencoded
I cannot find any documentation on express.json()
and express.urlencoded()
. What do each of them do exactly?
Đây là lời giải thích có thể giải tỏa những nghi ngờ về express.json()
và express.urlencoded()
cách sử dụng body-parser. Tôi đã mất một thời gian để tìm ra điều này.
express.json()
và express.urlencoded()
cách sử dụng body-parser. Tôi đã mất một thời gian để tìm ra điều này.Middleware là gì? Đó là những phương thức/hàm/hoạt động được gọi GIỮA quá trình xử lý Yêu cầu và gửi Phản hồi trong phương thức ứng dụng của bạn.
Khi nói đến
express.json()
vàexpress.urlencoded()
suy nghĩ cụ thể về các yêu cầu POST (tức là đối tượng yêu cầu .post) và các yêu cầu PUT (tức là đối tượng yêu cầu .put)Bạn KHÔNG CẦN
express.json()
vàexpress.urlencoded()
cho các Yêu cầu GET hoặc Yêu cầu DELETE.Bạn CẦN express.json()và express.urlencoded()đối với các yêu cầu POST và PUT, vì trong cả hai yêu cầu này, bạn đang gửi dữ liệu (dưới dạng một số đối tượng dữ liệu) đến máy chủ và bạn đang yêu cầu máy chủ chấp nhận hoặc lưu trữ dữ liệu đó (đối tượng), được bao gồm trong phần thân (tức là req.body) của Yêu cầu (POST hoặc PUT) đó
Express cung cấp cho bạn phần mềm trung gian để xử lý dữ liệu (đến) (đối tượng) trong nội dung yêu cầu.
a.
express.json()
là một phương thức tích hợp trong express để nhận dạng Request Object đến là JSON Object . Phương thức này được gọi là middleware trong ứng dụng của bạn bằng cách sử dụng mã:app.use(express.json());
b.
express.urlencoded()
là một phương thức tích hợp trong express để nhận dạng Request Object đến dưới dạng chuỗi hoặc mảng . Phương thức này được gọi là phần mềm trung gian trong ứng dụng của bạn bằng cách sử dụng mã:app.use(express.urlencoded());
HOẶC LÀ, tôi khuyên bạn nên sử dụng body-parser (đây là một gói NPM) để làm điều tương tự. Nó được phát triển bởi những người đã xây dựng express và được thiết kế để hoạt động với express. body-parser từng là một phần của express. Hãy nghĩ về body-parser dành riêng cho POST Request (tức là đối tượng yêu cầu .post) và/hoặc PUT Request (tức là đối tượng yêu cầu .put).
Trong body-parser bạn có thể làm
Nếu bạn hỏi tôi "sự khác biệt giữa express.urlencoded({extended: false})
và express.json()
" là gì, thì sự khác biệt là:
express.urlencoded({extended: false})
và express.json()
" là gì, thì sự khác biệt là:Ví dụ, nếu bạn điền "dean" vào biểu mẫu rồi gửi đi, Express sẽ không biết nội dung bên trong có mã Express này là gì:
Nó sẽ được gửi {}
sau khi bạn nhấp vào gửi. Nhưng nếu bạn bỏ bình luận app.use(express.urlencoded({extended: false}))
, thì bạn sẽ nhận được {"username": "dean"}
.
Vì vậy, sự khác biệt là express.json()
một trình phân tích cú pháp nội dung cho yêu cầu đăng bài ngoại trừ biểu mẫu đăng bài html và express.urlencoded({extended: false})
là một trình phân tích cú pháp nội dung cho biểu mẫu đăng bài html.
Cả phần mềm trung gian json
và urlencoded
phần mềm trung gian đều là một phần của bodyParser . Đây là nội dung của README:
json
và urlencoded
phần mềm trung gian đều là một phần của bodyParser . Đây là nội dung của README:bodyParser([tùy chọn])
Trả về phần mềm trung gian phân tích cả json
và urlencoded
. options
Được chuyển đến cả hai phần mềm trung gian.
bodyParser.json([tùy chọn])
Trả về phần mềm trung gian chỉ phân tích cú pháp json
. Các tùy chọn là:
strict
- chỉ phân tích các đối tượng và mảnglimit
<1mb> - kích thước yêu cầu tối đareviver
- đã chuyển đếnJSON.parse()
bodyParser.urlencoded([tùy chọn])
Trả về phần mềm trung gian chỉ phân tích cú pháp urlencoded
với mô-đun qs . Các tùy chọn là:
limit
<1mb> - kích thước yêu cầu tối đa
Chỉ cần nhớ rằng bodyParser.urlencoded với tùy chọn extended = false
sẽ sử dụng chuỗi truy vấn thư viện ví dụ: bodypParser.urlencoded({ extended: false }) //querystring
và thư viện qs nếu tùy chọn mở rộng được đặt thành true ví dụ: bodypParser.urlencoded({ extended: true })
extended = false
sẽ sử dụng chuỗi truy vấn thư viện ví dụ: bodypParser.urlencoded({ extended: false }) //querystring
và thư viện qs nếu tùy chọn mở rộng được đặt thành true ví dụ: bodypParser.urlencoded({ extended: true })
Hiện nay expressJS đã có một số phần mềm trung gian giúp nhà phát triển thực hiện một số nhiệm vụ tẻ nhạt, như chuyển đổi nội dung yêu cầu sang JSON và nhiều nhiệm vụ khác.
Ví dụ về các phần mềm trung gian ExpressJS tích hợp này là
express.json()
express.urlencoded()
express.json() là một phần mềm trung gian express được xây dựng để chuyển đổi nội dung yêu cầu thành JSON.
express.urlencoded() giống như express.json() chuyển đổi nội dung yêu cầu thành JSON, nó cũng thực hiện một số chức năng khác như: chuyển đổi dữ liệu biểu mẫu thành JSON, v.v.
Phần mềm trung gian này có sẵn trong Express v4.16.0 trở lên
Phần mềm trung gian này có sẵn trong Express v4.16.0 trở lên.
extended[boolean]: Tùy chọn này cho phép chọn giữa việc phân tích cú pháp dữ liệu được mã hóa URL bằng thư viện chuỗi truy vấn (khi sai) hoặc thư viện qs (khi đúng). Cú pháp "extended" cho phép mã hóa các đối tượng và mảng phong phú thành định dạng được mã hóa URL, cho phép trải nghiệm giống như JSON với URL được mã hóa
Last updated