ExpressJS में req.query और req.param


93

एक्सप्रेस में req.queryऔर मुख्य अंतरreq.param

  • दोनों एक दूसरे से अलग कैसे हैं
  • जब उपयोग करना है तो किन मामलों में

मान लीजिए कि एक ग्राहक अनुरोध में Android (मुख्य, मान) जोड़ी भेजता है ........ जो एक का उपयोग करने के लिए?

[संपादित करें]

मान लीजिए कि एंड्रॉइड एक POST अनुरोध भेजता है -> इरादा क्लाइंट को भेजना (कुंजी, मूल्य) है और सर्वर को सर्वर में मूल्य के आधार पर डेटाबेस क्वेरी करना चाहिए और JSON प्रतिक्रिया वापस करना चाहिए

देखो :: कार्यक्रम के लिए इस सवाल पर मैं संदर्भित: : एक परिणाम क्वेरी करने के लिए सरल एक्सप्रेस कार्यक्रम


1
क्या आपका मतलब req.queryऔर है req.param?
एआरबी

1
हाँ ! ......... मैंने प्रश्न को भी संशोधित किया है

जवाबों:


119

req.query क्वेरी स्ट्रिंग पार्स होने के बाद JS ऑब्जेक्ट लौटाएगा।

/ उपयोगकर्ता? नाम = टॉम और उम्र = 55 - req.queryउपज होगी{name:"tom", age: "55"}

req.paramsमिलान किए गए मार्ग में पैरामीटर लौटाएगा। यदि आपका मार्ग / उपयोगकर्ता /: आईडी है और आप / उपयोगकर्ता / 5 से अनुरोध करते हैं - req.paramsउपज प्राप्त होगी{id: "5"}

req.paramएक ऐसा कार्य है जो अनुरोध के मापदंडों को छीलता है। यह सब यहाँ पाया जा सकता है

अपडेट करें

यदि क्रिया एक है POSTऔर आप उपयोग कर रहे हैं bodyParser, तो आप के साथ कार्य करने में सक्षम होना चाहिए req.body। यह POSTएड फॉर्म का पार्स जेएस संस्करण होगा ।


धन्यवाद, मान लीजिए कि एक ग्राहक अनुरोध में Android (कुंजी, मान) जोड़ी कहता है ........ जो एक्सप्रेस में उपयोग करना है?

प्रश्न में अनुरोध देखे बिना इस प्रश्न का उत्तर देने का कोई तरीका नहीं है।
एआरबी

कृपया अद्यतन किए गए प्रश्न को देखें ..... मैंने उस कार्यक्रम के लिंक का भी उल्लेख किया है जो मैं पोस्ट किए गए प्रश्नों में से एक में व्यक्त कर रहा हूं ..... कृपया एक फ़ीड वापस जोड़ें!

@ यदि यह उत्तर आपकी मदद करता है, तो कृपया इसे इस प्रश्न के उत्तर के रूप में चिह्नित करने पर विचार करें। धन्यवाद।
एआरबी

16

req.queryसर्वर के लिए भेजा गया क्वेरी स्ट्रिंग है, उदाहरण /page?परीक्षण = 1 , req.paramहैंडलर को दिए गए पैरामीटर हैं।

app.get('/user/:id', handler);, जा रहा है /user/blah, req.param.idलौट जाएगा blah;


धन्यवाद, मान लीजिए कि एक ग्राहक अनुरोध में Android (कुंजी, मान) जोड़ी भेजता है ........ जो एक का उपयोग करने के लिए?

1
मुझे नहीं पता कि आप किस बारे में बात कर रहे हैं, अगर यह एक POST अनुरोध है, तो इसमें होगा req.data, अगर यह प्राप्त होगाreq.param
OneOfOne

नमस्ते, क्या आप मुझे बता सकते हैं कि अपरिभाषित के खिलाफ req.params की जांच कैसे करें?
अरज 1411

@ आनंदराज यह सिर्फ खाली होगा, इसलिए चेक करेंc.Param("id") == ""
OneOfOne

@OneOfOne, आपके उत्तर के लिए धन्यवाद। मुझे इसे देखने दें और आपको अपडेट करेंगे
Arj 1411

14

मैं निम्नलिखित का उपयोग करने का सुझाव दूंगा

req.param('<param_name>')

req.param ("") निम्नलिखित के रूप में काम करता है

लुकअप निम्न क्रम में किया जाता है:

req.params
req.body
req.query

Req.body, req.params, और req.query तक सीधी पहुंच स्पष्टता के पक्ष में होनी चाहिए - जब तक कि आप वास्तव में प्रत्येक ऑब्जेक्ट से इनपुट स्वीकार नहीं करते हैं।

संदर्भ: http://expressjs.com/4x/api.html#req.param


1
नमस्ते, क्या आप मुझे बता सकते हैं कि अपरिभाषित के खिलाफ req.params की जांच कैसे करें?
अरज 1411

@ अनंदराज आप अपरिभाषित से क्या मतलब है? क्या आपका मतलब है कि परमों को नहीं जाना जाता है?
अभिजीत गायकवाड़

जब मैं req.params के प्रकार की जाँच करता है तो इसका मतलब यह है कि यह अपरिभाषित दिखाता है। मेरा लक्ष्य यह जांचना है कि क्या req.params। <कोई भी URI पैरामीटर> शून्य है या नहीं
Arj 1411

@AnandRaj क्या आप अपना कोड पोस्ट कर सकते हैं? निम्नलिखित कोड मेरे लिए var एक्सप्रेस = आवश्यकता ('एक्सप्रेस') का काम करता है; var app = express (); app.get ('/', function (req, res) {कंसोल.लॉग (req.params); res.send (req.params);}); app.listen (3000);
अभिजीत गायकवाड़

@AnandRaj कोशिश अगर (reqParams.hasOwnProperty ('डिवाइस टाइप')) {}
अभिजीत गायकवाड़

11

पासिंग परमेस

GET request to "/cars/honda" 

होंडा कार मॉडल की एक सूची देता है

पासिंग क्वेरी

GET request to "/car/honda?color=blue"

होंडा कार मॉडल की सूची लौटाता है, लेकिन नीले रंग के स्टॉक कलर वाले केवल मॉडल ही फ़िल्टर किए जाते हैं।

URL फ़िल्टर (/ कार / होंडा / कलर / ब्लू) में उन फ़िल्टर को जोड़ने का कोई मतलब नहीं है क्योंकि REST के अनुसार, इसका अर्थ यह होगा कि हम रंग "ब्लू" के बारे में जानकारी प्राप्त करना चाहते हैं। चूंकि हम वास्तव में चाहते हैं कि होंडा मॉडल की एक फ़िल्टर की गई सूची है, हम वापस आने वाले परिणामों को फ़िल्टर करने के लिए क्वेरी स्ट्रिंग्स का उपयोग करते हैं।

ध्यान दें कि क्वेरी स्ट्रिंग्स वास्तव में सिर्फ {key: value} जोड़े से थोड़े अलग फॉर्मेट में हैं:? Key1 = value1 & key2 = value2 & key3 = value3।

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