एक्सप्रेस 4.0 में 'विस्तारित' का क्या अर्थ है?


90

मैं अपने ऐप में एक्सप्रेस और बॉडी-पार्सर का उपयोग कर रहा हूं।

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

लेकिन, एक्सप्रेस 4.0 में 'विस्तारित' का क्या अर्थ है?

मुझे मिला

extended - parse extended syntax with the qs module.

हालाँकि, मैं अब भी इसका मतलब नहीं समझ सकता।

जवाबों:



80

जब extendedसंपत्ति सेट हो जाती है true, तो URL-एन्कोडेड डेटा को qs लाइब्रेरी के साथ पार्स कर दिया जाएगा ।

इसके विपरीत,

जब extendedसंपत्ति सेट की जाती है false, तो URL-एन्कोडेड डेटा को क्वेरिस्ट्रिंग लाइब्रेरी के साथ पार्स किया जाएगा ।


`क्यू पुस्तकालय` बनाम` querystring पुस्तकालय` के साथ पार्स करने के बीच अंतर

  • क्यू लाइब्रेरी आपको अपने क्वेरी स्ट्रिंग से नेस्टेड ऑब्जेक्ट बनाने की अनुमति देता है ।

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


  • क्वेरी-स्ट्रिंग लाइब्रेरी आपके क्वेरी स्ट्रिंग से नेस्टेड ऑब्जेक्ट बनाने का समर्थन नहीं करती है।

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


  • क्यू लाइब्रेरी को फ़िल्टर नहीं किया जाएगा ? ' क्वेरी स्ट्रिंग से।

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


  • क्वेरी-स्ट्रिंग लाइब्रेरी फ़िल्टर हो जाएगी '?' क्वेरी स्ट्रिंग से।

    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


अधिक जानकारी के लिए, आप लियोनिद बेस्चस्टनी के जवाब का उल्लेख कर सकते हैं और npm qs बनाम क्वेरी-स्ट्रिंग की तुलना कर सकते हैं ।



1
चयनित उत्तर होना चाहिए
निशि

यह सही उत्तर के रूप में चयनित होना चाहिए।
awsAnurag

21

बॉडी-पार्सर डॉक्स से:

एक नया बॉडी ऑब्जेक्ट पार्स किया गया डेटा मिडलवेयर (यानी req.body) के बाद अनुरोध ऑब्जेक्ट पर पॉप्युलेट होता है। इस ऑब्जेक्ट में मुख्य-मूल्य जोड़े होंगे, जहां मान एक स्ट्रिंग या सरणी हो सकता है (जब विस्तारित गलत है), या किसी भी प्रकार (जब विस्तारित सत्य है)।

तथा

विस्तारित विकल्प URL-एन्कोडेड डेटा को क्वेरिस्ट्रिंग लाइब्रेरी (जब गलत) या qs लाइब्रेरी (सही होने पर) के साथ चुनने के बीच चयन करने की अनुमति देता है। "विस्तारित" सिंटैक्स रिच-ऑब्जेक्ट और सरणियों को URL-एन्कोडेड प्रारूप में एन्कोड किया जा सकता है, जो URL-एन्कोडेड के साथ JSON-जैसा अनुभव देता है। अधिक जानकारी के लिए, कृपया क्ष लाइब्रेरी देखें।

मूल रूप से विस्तारित आपको पूर्ण वस्तुओं को पार्स करने की अनुमति देता है।

बॉडी पार्सर: Url एन्कोडेड

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.