2021 में, जावास्क्रिप्ट सबसे व्यापक रूप से इस्तेमाल की जाने वाली प्रोग्रामिंग भाषा थी।
इस तकनीक की अपील निर्विवाद है, जैसा कि जावास्क्रिप्ट प्रोग्रामिंग को सक्षम करने वाले बड़ी संख्या में फ्रेमवर्क से देखा जा सकता है।
कुछ का उल्लेख करने के लिए फ्रंटएंड पर एंगुलर, रिएक्ट और व्यू हैं, साथ ही बैकएंड पर एक्सप्रेस और नेक्स्ट भी हैं।
जावास्क्रिप्ट में बैकएंड प्रोग्रामिंग के लिए इतने सारे अद्भुत ढांचे उपलब्ध होने के साथ, आप सोच रहे होंगे कि मैं केवल एक्सप्रेस या नेक्स्ट का उपयोग करने के बजाय कुछ अलग क्यों खोजूंगा।
शायद आपको एक अच्छे बॉयलरप्लेट के साथ विकास प्रक्रिया को शीघ्रता से शुरू करने की आवश्यकता है, और मैन्युअल रूप से न केवल नए नियंत्रकों को जोड़ना बल्कि सेवाओं को भी जोड़ना आपको बीमार बनाता है।
या आप बड़ा, स्केलेबल सॉफ़्टवेयर बनाना चाहते हैं जिसे प्रबंधित करना आसान हो। या शायद आप बस अधिक कुशल और सुविधाजनक तरीके से काम करना चाहते हैं।
आपकी परिस्थिति में चाहे जो भी सच हो, Nest.js आपकी आवश्यकताओं के लिए सही समाधान हो सकता है।
यह पोस्ट NestJS अंतर्दृष्टि के साथ-साथ व्यावहारिक अनुभव भी प्रदान करेगी।
नेस्टजेएस क्या है?
नेस्टजेएस एक प्रगतिशील नोड ढांचा है जो खुला-स्रोत, विस्तार योग्य और अनुकूलनीय है .जे.एस बैकएंड सिस्टम के निर्माण, आकर्षक और चुनौतीपूर्ण के लिए रूपरेखा। यह अब सबसे तेज विकास दर वाला नोड है।
जेएस के लिए टाइपस्क्रिप्ट ढांचा। NestJS का उपयोग ऐसे एप्लिकेशन बनाने के लिए किया जाता है जो स्केलेबल, परीक्षण योग्य और शिथिल रूप से जुड़े हुए हों।
यह नोड में स्केलेबिलिटी जोड़ता है। जेएस सर्वर को बिल्कुल नए स्तर पर ले जाया गया है। समर्थित डेटाबेस में PostgreSQL, MongoDB और MySQL शामिल हैं।
NestJS विस्तार योग्य है क्योंकि इसका उपयोग अन्य पुस्तकालयों के साथ किया जा सकता है; अपने अनुकूलनीय पूर्ण विकसित पारिस्थितिकी तंत्र के कारण लचीला। और प्रगतिशील है क्योंकि यह जावास्क्रिप्ट सुविधाओं और डिज़ाइन सिद्धांतों का समर्थन करता है।
यह मुख्य रूप से Angular, React और Vue से प्रभावित है और बिल्ट-इन डिपेंडेंसी इंजेक्शन के साथ आता है।
विशेषताएं
- इसका उपयोग करना, सीखना और इसमें महारत हासिल करना आसान है।
- यह मुफ़्त है और खुले स्रोत (एमआईटी लाइसेंस)
- उत्पादकता में वृद्धि और विकास में सरलता के लिए शक्तिशाली कमांड लाइन इंटरफ़ेस (सीएलआई)।
- यूनिट-परीक्षण प्रोग्राम जो उपयोग में सरल हैं
- टाइपस्क्रिप्ट, एक कसकर टाइप की गई भाषा जो जावास्क्रिप्ट का सुपरसेट है, का उपयोग किया जाता है।
- एक सक्रिय कोडबेस का विकास और रखरखाव।
- सैकड़ों नेस्ट-विशिष्ट मॉड्यूल के लिए समर्थन जो टाइपओआरएम, मोंगोस, ग्राफक्यूएल, लॉगिंग, सत्यापन, कैशिंग, वेबसॉकेट और अधिक जैसी लोकप्रिय प्रौद्योगिकियों और विचारों के साथ इंटरफेस करना आसान बनाता है।
NestJS के निर्माण खंड क्या हैं?
नेस्ट अनुप्रयोगों के निर्माण घटक नीचे सूचीबद्ध हैं; और भी हैं, लेकिन ये तीन सबसे महत्वपूर्ण हैं। आइये जल्दी से उन पर एक नजर डालते हैं.
1। नियंत्रकों
नियंत्रक आने वाले अनुरोधों को संसाधित करने और ग्राहकों को जवाब देने के प्रभारी हैं। यह विशेष HTTP अनुरोध प्राप्त करता है, और रूटिंग सिस्टम यह निर्धारित करता है कि कौन सा नियंत्रक कौन सा अनुरोध प्राप्त करता है।
इसके बाद यह भेजने के लिए उपयुक्त उत्तर का मसौदा तैयार करता है। कक्षाओं और सज्जाकारों की सहायता से, एक सरल संग्राहक बनाया जाता है और प्रत्येक नियंत्रक के पास विभिन्न कार्यों को करने के लिए मार्गों का अपना सेट होता है।
2. प्रदाता
नेस्ट में प्रदाता एक प्रमुख विचार है। नेस्ट की कई मुख्य श्रेणियाँ - सेवाएँ, रिपॉजिटरी, फ़ैक्टरियाँ, सहायक, इत्यादि - को प्रदाताओं के रूप में संभाला जा सकता है।
एक प्रदाता की मूल धारणा यह है कि इसे एक निर्भरता के रूप में इंजेक्ट किया जा सकता है; इसका तात्पर्य यह है कि वस्तुएं एक-दूसरे के साथ विभिन्न संबंध बना सकती हैं, और वस्तुओं के "वायरिंग अप" उदाहरणों की भूमिका मुख्य रूप से नेस्ट रनटाइम सिस्टम को आउटसोर्स की जा सकती है।
3। मॉड्यूल
मॉड्यूल @Module() डेकोरेटर वाला एक वर्ग है जो एप्लिकेशन की संरचना के घटकों को व्यवस्थित करता है। प्रत्येक एप्लिकेशन में एक रूट मॉड्यूल होता है जिसका उपयोग एप्लिकेशन ग्राफ़ बनाने के लिए किया जाता है, जो प्रदाता और मॉड्यूल के बीच निर्भरता और इंटरैक्शन को हल करता है।
यह डेकोरेटर Nest.js को मेटाडेटा देता है ताकि यह पहचाना जा सके कि एप्लिकेशन कोड में कौन से घटकों, नियंत्रकों या अन्य संसाधनों का उपयोग किया जाएगा और उन्हें एक सेट में संयोजित किया जाएगा।
प्रत्येक मॉड्यूल में क्षमताओं का एक संग्रह होता है जो किसी न किसी तरह से जुड़े होते हैं।
NestJS के साथ शुरुआत करना
1. स्थापना
आइए NestJS इंस्टॉल करें और इन चरणों का पालन करके इसके साथ एक प्रोजेक्ट बनाएं:
इसके परिणामस्वरूप निम्नलिखित निर्देशिका संरचना बनाई जाएगी:
2। नियंत्रकों
नेस्ट के बिल्डिंग ब्लॉक नियंत्रक हैं। ये वे स्थान हैं जहां आने वाले अनुरोधों को संभाला जाएगा। आप HTTP विधि संशोधक (गेट, पोस्ट, पुट, डिलीट, इत्यादि) डेकोरेटर का उपयोग करके रूट पथ निर्दिष्ट कर सकते हैं, जैसा कि नीचे दिए गए कोड में देखा गया है।
Nestjs डेकोरेटर दृष्टिकोण को नियोजित करता है और इसे ज्यादातर टाइपस्क्रिप्ट में विकसित किया जाता है, हालांकि यह जावास्क्रिप्ट का भी समर्थन करता है। आप अनुरोध निकाय को सत्यापित करने के लिए क्लास वैलिडेटर का भी उपयोग कर सकते हैं।
मैं बस एक Nestjs सर्वर इंस्टेंस बनाने जा रहा हूं और वैश्विक स्तर पर ValidationPipe जोड़ने जा रहा हूं। पाइप्स केवल वे विधियाँ हैं जो नियंत्रकों से पहले निष्पादित होती हैं। @UsePipes डेकोरेटर का उपयोग करके पाइप को विधि/तर्क स्तर पर भी लागू किया जा सकता है।
3. प्रदाता
प्रदाता Nestjs का एक अन्य महत्वपूर्ण घटक हैं। अब तक, मैं एक अस्थायी चर में डेटा संग्रहीत कर रहा था। इसीलिए कंट्रोलर हैंडलर्स का उपयोग करके इतना सरल कार्य पूरा किया जा सकता है।
हालाँकि, बड़े, अधिक जटिल तर्क के लिए, कोड पृथक्करण और पुन: उपयोग कठिन होगा। यह तब होता है जब आपूर्तिकर्ता आते हैं। आप @इंजेक्टेबल डेकोरेटर का उपयोग करके किसी वर्ग के शीर्ष पर एक प्रदाता घोषित/बना सकते हैं। फिर, प्रदाताओं का उपयोग करके, आप निर्भरता इंजेक्शन, लॉगिंग और अन्य कार्य कर सकते हैं।
4। मॉड्यूल
Nestjs मॉड्यूल वैश्विक नहीं हैं; इसके बजाय, उनमें गहराई है।
हालाँकि, इसे किसी अन्य मॉड्यूल के साथ भी साझा किया जा सकता है। हालाँकि, एंगुलर की तरह, यह वैश्विक मॉड्यूल प्रदान करता है, सेवाओं/नियंत्रकों को उस मॉड्यूल में रखना अधिक उचित है जहां वे नेस्टज में सबसे अधिक उपयोग किए जाते हैं।
NestCLI का उपयोग अधिकांश समय मॉड्यूल बनाने के लिए किया जाता है, और उस मॉड्यूल के संदर्भ में उत्पन्न प्रदाता/नियंत्रक स्वचालित रूप से CLI द्वारा जोड़े जाते हैं। इन्हें फीचर मॉड्यूल के रूप में जाना जाता है।
5. अपवाद फ़िल्टर
अपवाद फ़िल्टर त्रुटि हैंडलर होते हैं जो तब लागू होते हैं जब नियंत्रक एक अपवाद फेंकता है। यह स्वचालित रूप से समस्या का प्रबंधन करता है और एक उचित, उपयोगकर्ता-अनुकूल त्रुटि संदेश देता है।
कई HttpException इनहेरिटेड अपवाद पैकेज @nestjs/common द्वारा प्रदान किए जाते हैं, जिनमें NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException और कई अन्य शामिल हैं। आप अपना खुद का एक्सेप्शनफ़िल्टर भी डिज़ाइन कर सकते हैं।
6. मिडलवेयर
एक फ़ंक्शन जिसे रूट हैंडलर से पहले बुलाया जाता है उसे मिडलवेयर कहा जाता है। अनुरोध और प्रतिक्रिया ऑब्जेक्ट, साथ ही एप्लिकेशन के अनुरोध-प्रतिक्रिया चक्र में अगला() मिडलवेयर फ़ंक्शन, मिडलवेयर फ़ंक्शन के लिए पहुंच योग्य हैं।
नेक्स्ट नामक वेरिएबल का उपयोग आम तौर पर अगले मिडलवेयर फ़ंक्शन की पहचान करने के लिए किया जाता है। कस्टम नेस्ट मिडलवेयर को @इंजेक्टेबल() डेकोरेटर का उपयोग करके किसी विधि या क्लास में लागू किया जा सकता है।
7. रक्षक
गार्ड केवल एक चीज के लिए जिम्मेदार हैं। यह आकलन करना उनकी ज़िम्मेदारी है कि विशिष्ट परिस्थितियों (विशेष रूप से, उपयोगकर्ता-परिभाषित तर्क) के आधार पर नियंत्रक द्वारा अनुरोध पर कार्रवाई की जाएगी या नहीं।
यह प्रमाणीकरण/प्राधिकरण के लिए सहायक है और Nestjs में अनुशंसित विधि है।
हालाँकि प्रमाणीकरण/अनुमतियाँ इत्यादि मिडलवेयर का उपयोग करके किया जा सकता है, यह एक्सप्रेस या अन्य HTTP सर्वर में नहीं किया जाता है क्योंकि उनके पास संबंधित मजबूत संदर्भ नहीं है और यह जानने का कोई कारण नहीं है कि अनुरोध को संसाधित करने के लिए किस विधि का उपयोग किया जाएगा।
फायदे
- फ़्रेमवर्क एनोटेशन पर बहुत अधिक निर्भर है, जिसका उपयोग एंडपॉइंट से लेकर स्वैगर दस्तावेज़ीकरण तक कुछ भी तैयार करने के लिए किया जाता है। अंतिम बिंदु बुनियादी और सुव्यवस्थित हैं, और एनोटेशन सामान्य रूप से विकास को आसान बनाते हैं।
- चूंकि Nest.js एक मॉड्यूल-आधारित ढांचा है, इसलिए सामान्य-उद्देश्य वाले मॉड्यूल को बाहरी बनाना और कई परियोजनाओं में कोड का पुन: उपयोग करना सरल है।
- Nest.js की फ़ोल्डर संरचना Angular से काफी प्रभावित है। नेस्ट सेवा डिज़ाइन करते समय, यह न्यूनतम डाउनटाइम की अनुमति देता है।
- घटकों की अपनी निर्देशिकाएं होती हैं, रूट में एप्लिकेशन मॉड्यूल और मुख्य फ़ाइल होती है। संरचना की सरलता के कारण, एप्लिकेशन की संरचना के बजाय एंडपॉइंट और उनके ग्राहकों के डिज़ाइन पर अधिक ध्यान दिया जा सकता है।
- नेस्ट, एंगुलर की तरह, एक अच्छा कमांड-लाइन टूल, नेस्टज/सीएलआई प्रदान करता है, जो नोड पैकेज मैनेजर के माध्यम से उपलब्ध है।
नुकसान
- टाइपस्क्रिप्ट उपयोग और एंगुलर एकीकरण के मामले में नेस्ट को लाभ है, लेकिन इसमें एक विशाल निगम के वित्तीय समर्थन का अभाव है।
- दस्तावेज़ीकरण की कमी नेस्ट उपयोगकर्ताओं के लिए सबसे बड़ा ख़तरा है। हालाँकि फ्रेमवर्क में अन्य फ्रेमवर्क के साथ उत्कृष्ट इंटरैक्शन हैं, दस्तावेज़ीकरण विरल है और किसी भी संभावित कठिनाइयों का समाधान नहीं करता है।
- टाइपस्क्रिप्ट उपयोग और एंगुलर के मामले में नेस्ट को फायदा है।
निष्कर्ष
NestJS डेवलपर्स को बड़ी बढ़त प्रदान करता है। विकास शुरू करने के लिए, आपको बस इतना करना है एक नया ऐप बनाएं और आप जाने के लिए तैयार हैं। यह ढाँचा तुरंत एक महत्वपूर्ण बढ़ावा प्रदान करता है, साथ ही एक उपयुक्त ऐप आर्किटेक्चर स्थापित करके अतिरिक्त कदम उठाने में भी आपकी सहायता करता है।
यह ऐसे अनुप्रयोगों का उत्पादन करने के लिए अत्याधुनिक तरीकों और प्रौद्योगिकी का उपयोग करता है जो प्रबंधनीय और लंबे समय तक चलने वाले दोनों हैं। इसका उपयोग GraphQL, WebSockets से कनेक्ट करने और माइक्रोसर्विसेज के निर्माण के लिए किया जा सकता है।
एक जवाब लिखें