MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एक असामान्य तरीके से मॉड्यूल.एक्सपोर्ट का उपयोग करना

इसमें बहुत सी चीजें गलत हैं। यह अवधारणा काम नहीं करेगी।

शुरुआत के लिए, आपका while(true) लूप इवेंट लूप को ब्लॉक कर देता है इसलिए db कभी भी मूल्य नहीं मिल सकता है इसलिए आपका लूप कभी पूरा नहीं होता है।

जब कनेक्ट में नेटवर्क ऑपरेशन पूरा हो जाता है, तो यह ईवेंट कतार में एक ईवेंट जोड़ देगा और इसके साथ जुड़े कॉलबैक (और फिर हल किया गया वादा) केवल तभी चल सकता है जब आप ईवेंट लूप पर वापस नियंत्रण लौटाते हैं ताकि ईवेंट संसाधित हो सके।

लेकिन, आपका while(true) लूप ईवेंट लूप को ब्लॉक कर देता है ताकि कोई ईवेंट संसाधित न हो सके। जब तक आप await का उपयोग नहीं कर रहे हैं लूप के अंदर (जो अन्य घटनाओं को चलाने की अनुमति देता है), आप नोड.जेएस में इस तरह एक प्रतीक्षा लूप का उपयोग नहीं कर सकते। यह सिर्फ एक अनंत लूप बनाता है।

जब तक हमारे पास शीर्ष स्तर की await न हो जाए जो मॉड्यूल इनिशियलाइज़ेशन (जिस पर काम किया जा रहा है) के साथ काम करता है, आप सीधे एसिंक्रोनस रूप से प्राप्त मूल्य को निर्यात नहीं कर सकते।

इसके बजाय, आप एक वादा निर्यात कर सकते हैं और कॉल करने वाले को डीबी प्राप्त करने के लिए वादे का उपयोग करना होगा। या एक फ़ंक्शन निर्यात करें जो एक वादा लौटाता है।

इन अन्य उत्तरों में लूप के दौरान व्यस्त-प्रतीक्षा के साथ समस्याओं के बारे में अधिक जानकारी:

flag=true तक प्रतीक्षा करें

जावास्क्रिप्ट - लूप के दौरान इसमें क्या गलत है? कभी न खत्म होने वाला लूप

एक क्यों करता है जबकि लूप इवेंट लूप को ब्लॉक करता है?




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. पायमोंगो कुल निष्पादन कैसे प्राप्त करेंस्टेट्स

  2. महीने के अनुसार समूह रिकॉर्ड करें और उन्हें गिनें - नेवला, नोडजे, मोंगोडीबी

  3. कुल $लुकअप मिलान पाइपलाइन में दस्तावेज़ों का कुल आकार अधिकतम दस्तावेज़ आकार से अधिक है

  4. एक्सप्रेस और नेवला का उपयोग कर मौजूदा MongoDB दस्तावेज़ की सरणी के लिए प्रपत्र डेटा पोस्ट करें

  5. Ubuntu पर Golang में Mongo Cloud mongodb डेटाबेस से कनेक्ट नहीं हो सकता