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