'Mở rộng' nghĩa là gì trong express 4.0?


87

Tôi đang sử dụng express và body-parser trong ứng dụng của mình.

app.use(bodyParser.urlencoded({ extended: false }));

Nhưng, 'mở rộng' có nghĩa là gì trong 4.0 nhanh chóng?

tôi đã tìm thấy cái này

extended - parse extended syntax with the qs module.

Tuy nhiên, tôi vẫn không thể hiểu nó có nghĩa là gì.

Câu trả lời:



76

Khi thuộc extendedtính được đặt thành true, dữ liệu được mã hóa URL sẽ được phân tích cú pháp với thư viện qs .

Ngược lại,

khi thuộc extendedtính được đặt thành false, dữ liệu được mã hóa URL thay vào đó sẽ được phân tích cú pháp với thư viện chuỗi truy vấn .


Sự khác biệt giữa phân tích cú pháp với `thư viện qs` và` thư viện chuỗi truy vấn`

  • thư viện qs cho phép bạn tạo một đối tượng lồng nhau từ chuỗi truy vấn của bạn.

    var qs = require("qs")
    var result = qs.parse("person[name]=bobby&person[age]=3")
    console.log(result) // { person: { name: 'bobby', age: '3' } }
    


  • thư viện chuỗi truy vấn không hỗ trợ tạo đối tượng lồng nhau từ chuỗi truy vấn của bạn.

    var queryString = require("query-string")
    var result = queryString.parse("person[name]=bobby&person[age]=3")
    console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
    


  • thư viện qs sẽ không lọc ra '?' từ chuỗi truy vấn.

    var qs = require("qs")
    var result = qs.parse("?a=b")
    console.log(result) // { '?a': 'b' }
    


  • thư viện chuỗi truy vấn sẽ lọc ra '?' từ chuỗi truy vấn.

    var queryString = require("query-string")
    var result = queryString.parse("?a=b")
    console.log(result) // { a: 'b' }
    

app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded


Để biết thêm thông tin, bạn có thể tham khảo câu trả lời của Leonid Beschastnynpm so sánh qs với chuỗi truy vấn .



1
nên là câu trả lời được chọn
nishi

21

Từ tài liệu Body-Parser:

Một đối tượng body mới có chứa dữ liệu đã được phân tích cú pháp được điền vào đối tượng request sau phần mềm trung gian (tức là req.body). Đối tượng này sẽ chứa các cặp khóa-giá trị, trong đó giá trị có thể là một chuỗi hoặc mảng (khi mở rộng là sai) hoặc bất kỳ kiểu nào (khi mở rộng là đúng).

Tùy chọn mở rộng cho phép chọn giữa phân tích cú pháp dữ liệu được mã hóa URL với thư viện chuỗi truy vấn (khi sai) hoặc thư viện qs (khi đúng). Cú pháp "mở rộng" cho phép các đối tượng và mảng phong phú được mã hóa thành định dạng mã hóa URL, cho phép trải nghiệm giống như JSON với mã hóa URL. Để biết thêm thông tin, vui lòng xem thư viện qs.

Về cơ bản, mở rộng cho phép bạn phân tích cú pháp các đối tượng đầy đủ.

Trình phân tích cú pháp nội dung: Url được mã hóa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.