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