Node.js और टाइपस्क्रिप्ट का उपयोग करके ब्लॉगिंग इंजन कैसे बनाएं

ब्लॉग

Node.js और टाइपस्क्रिप्ट का उपयोग करके ब्लॉगिंग इंजन कैसे बनाएं

पिछले दशक के दौरान गतिशील रूप से टाइप की जाने वाली भाषाएं प्रमुख हो गईं, टाइपलेस (या मुझे कानूनविहीन कहना चाहिए?) प्रोग्रामिंग के लिए आदर्श बन गया बैकएंड साथ ही साथ फ़्रंट एंड .



बहुत से लोग मानते हैं कि केवल कोड लिखने की सादगी अवधारणा या प्रोटोटाइप अनुप्रयोगों का प्रमाण प्रदान करने के लिए कुशल है।

हालांकि, जैसे-जैसे वे एप्लिकेशन बढ़ते हैं, उन्हें बनाने के लिए उपयोग किया जाने वाला टाइपलेस कोड अक्सर अविश्वसनीय रूप से जटिल हो जाता है और प्रबंधन के लिए और अधिक कठिन (कुछ असंभव कहेंगे) हो जाते हैं।



सबसे बुरे मामलों में, डेवलपर्स इस उम्मीद में परीक्षण और प्रार्थना का सहारा लेते हैं कि किसी फ़ंक्शन का नाम बदलने जैसे सरल ऑपरेशन पूरे जटिल सिस्टम को नहीं तोड़ेंगे। हालांकि, डेवलपर्स अपने कोडबेस को बड़े पैमाने पर पढ़ने योग्य बनाने के लिए पहले दिन से ही अपना कोड बना सकते हैं।

बचाव के लिए टाइपस्क्रिप्ट

बड़े (या यहां तक ​​कि छोटे!) कोडबेस को पढ़ने योग्य बनाने की कुंजी ऐप के माध्यम से बहने वाले सभी डेटा प्रकारों का ट्रैक रखना है।



इसमें डेवलपर्स की मदद करने के लिए, टाइपप्रति सादे पुराने का टाइप किया गया सुपरसेट प्रदान किया गया जावास्क्रिप्ट . इसका मतलब है कि एक नियमित जावास्क्रिप्ट डेवलपर मौजूदा ज्ञान पर लागू होता है टाइपप्रति .

ऐसे अन्य कुशल तरीके हैं जिनसे डेवलपर अपने ज्ञान और कोड का नए तरीकों से उपयोग कर सकते हैं। डेवलपर जो उपयोग करते हैं नोडजेएस अब उनका पुनर्चक्रण कर सकते हैं फ़्रंट एंड के लिए कोड बैकएंड , और इसके विपरीत।

इसके अतिरिक्त, करने के लिए स्थिर टाइपिंग की शुरूआत जावास्क्रिप्ट डेवलपर्स को अपने NodeJS कोडबेस को बनाए रखने में मदद करने के लिए उस पुराने Java/C# ज्ञान में से कुछ का पुन: उपयोग करने की अनुमति देता है।

आज का प्रोजेक्ट: एक साधारण ब्लॉगिंग इंजन

इस ट्यूटोरियल में, हमें a . के लिए एक नए बैकएंड की आवश्यकता है ब्लॉगिंग इंजन . इस ऐप में एक शीर्षक, सामग्री और लेखक के साथ ब्लॉग पोस्ट की एक सूची होगी।

लेखक सत्र-इन-कुकीज़ दृष्टिकोण का उपयोग करके पंजीकरण और लॉग इन करने में सक्षम होंगे। ओक्टा उपयोगकर्ताओं को प्रबंधित करेगा, और सभी ब्लॉग पोस्ट स्मृति में सहेजे जाएंगे।

बैकएंड के लिए प्रलेखन को वर्गों और विधियों के लिए टाइपस्क्रिप्ट टाइपिंग से उत्पन्न स्वैगर विनिर्देश के रूप में उजागर किया जाएगा।

NodeJS टाइपप्रति नमूना ऐप के लिए निर्भरता

  • नेस्टजेएस सर्वर बूटस्ट्रैप करने के लिए
  • सर्वर डॉक्स को परिभाषित करने के लिए स्वैगर
  • उपयोगकर्ता प्रबंधन और प्रमाणीकरण के लिए ओक्टा
  • नोडजेएस
  • |_+_| इनपुट सत्यापन के लिए npm पुस्तकालय
  • नोडमॉन हर बदलाव पर सर्वर को ऑटो-रिस्टार्ट करने के लिए

प्रारंभ

एक खाली निर्देशिका बनाएँ |_+_|, |_+_| इसमें टाइप करें, और टाइप करें |_+_| वहां। |_+_| . दबाने के बाद कुंजी कुछ बार, a नोडजेएस परियोजना शुरू करेगी।

टाइपस्क्रिप्ट कॉन्फ़िगरेशन JSON

जैसा टाइपप्रति बहुत विन्यास योग्य है, अधिकांश टाइपस्क्रिप्ट प्रोजेक्ट भाषा सुविधाओं का चयन करने के लिए एक कॉन्फ़िगरेशन शामिल करें जिसका इसे उपयोग करना चाहिए।

अपने प्रोजेक्ट के मूल में एक tsconfig.json बनाएँ:

validate-class

सभी निर्भरताएँ जोड़ें

bloggeur

इनमें से अधिकांश निर्भरताएँ सीधी होनी चाहिए, लेकिन उनमें से कुछ को समझाने की आवश्यकता है:

  • प्रमाणीकरण और प्राधिकरण मिडलवेयर की आवश्यकता है |_+_| संकुल
  • |_+_| पैकेज का एक हिस्सा हैं नेस्टजेएस प्लेटफॉर्म , चारों ओर एक उच्च स्तरीय आवरण एक्सप्रेस.जेएस जो एपीआई दस्तावेज़ीकरण के लिए टाइपस्क्रिप्ट मेटाडेटा सुविधा को शक्ति प्रदान करता है
  • |_+_| पैकेज मेटाडेटा सुविधाओं को उजागर करता है
  • |_+_| और |_+_| नियंत्रकों को पास करने से पहले क्लाइंट इनपुट को मान्य करें

सर्वर स्टार्टअप बनाएं

सेट अप करने के लिए एक प्रवेश बिंदु बनाएं (|_+_|) टाइपप्रति संदर्भ और एक नियमित |_+_| . का उपयोग करके प्रोजेक्ट चलाएँ आदेश:

cd

साथ ही, एक |_+_| . बनाएं स्रोत कोड के लिए निर्देशिका।

NestJS मॉड्यूल बनाएं

दोनों Node.js और .NET ने NestJS को अत्यधिक प्रेरित किया। तो यह आश्चर्य की बात नहीं है कि हर NestJS ऐप मॉड्यूल का सिर्फ एक गुच्छा है।

एक (लगभग) खाली बनाएँ NestJS मॉड्यूल |_+_|. इसमें केवल एक कुकी-पार्सर मिडलवेयर होता है, और इसमें सभी एप्लिकेशन (वर्तमान में गैर-मौजूद) नियंत्रक शामिल होंगे:

npm init

NestJS सर्वर को बूटस्ट्रैप करें

बनाएं |_+_| सर्वर को स्पिन करने के लिए:

ENTER

अपने आवेदन का परीक्षण करें

दौड़ने से |_+_| या |_+_|, आपका सर्वर पोर्ट 3000 पर शुरू होना चाहिए।

लेकिन |_+_| . का उपयोग करके इसे चलाना सुनिश्चित करें स्वचालित पुनरारंभ की अनुमति देने के लिए:

@okta

सर्वर चलाने के बाद, अपने ब्राउज़र को |_+_| पर निर्देशित करें। एक एपीआई कंसोल को इस संदेश के साथ खोलना चाहिए कि कोई ऑपरेशन निर्दिष्ट नहीं है।

अब कुछ ऑपरेशन बनाते हैं!

|_+_| . बनाएं मापांक

एक निर्देशिका बनाएँ |_+_|। इसमें |_+_| . बनाएं सभी पदों को समाहित करने के लिए:

@nestjs

ब्राउज़र पेज को रिफ्रेश करें |_+_|, और निष्पादित करें |_+_| एपीआई कंसोल में।

प्रमाणीकरण मॉड्यूल बनाएं

के लिए एक निर्देशिका बनाएँ प्रमाणीकरण मॉड्यूल: reflect-metadata

प्रमाणीकरण के बोझ को कम करने में मदद करने के लिए, आप प्रमाणीकरण, प्राधिकरण और उपयोगकर्ता खाता प्रबंधन के लिए ओक्टा का उपयोग करेंगे।

हमेशा के लिए मुक्त Okta खाता और एप्लिकेशन बनाएं

यहां क्लिक करें खाता बनाने के लिए।

अपने ओक्टा डैशबोर्ड में लॉग इन करने के बाद, क्लिक करें अनुप्रयोग मेनू में और क्लिक करें आवेदन जोड़ें . विज़ार्ड से, चुनें सेवा और क्लिक करें अगला .

एप्लिकेशन सेटिंग्स स्क्रीन पर, एप्लिकेशन को नाम दें (मैंने अपना नाम ब्लॉग-बैकएंड रखा है)।

किसी एप्लिकेशन के सफलतापूर्वक बनने के बाद, क्लाइंट आईडी और क्लाइंट सीक्रेट को |_+_| . में कॉपी करें परियोजना की जड़ में फ़ाइल।

dotenv (.env) फ़ाइल आपके विकास पर्यावरण चर को संग्रहीत करती है। वे आपके एप्लिकेशन के कोड को विकास से उत्पादन या तृतीय-पक्ष प्रदाताओं के संदर्भ खातों में बदल देते हैं।

यह फ़ाइल |_+_| . द्वारा उपभोग की जाती है आपके में बयान |_+_| फ़ाइल। यह |_+_| . से मूल्यों की प्रतिलिपि बनाता है फ़ाइल में |_+_| वैश्विक चर। एक खाली बनाएँ |_+_| प्रोजेक्ट की रूट डायरेक्टरी में फाइल करें।

एप्लिकेशन को ओक्टा के साथ संवाद करने के लिए एक एपीआई टोकन की आवश्यकता है। ओक्टा डैशबोर्ड में, पर क्लिक करें आग , फिर टोकन , और नए पेज पर क्लिक करें टोकन बनाएं . इसके मान को |_+_| . में कॉपी करें फ़ाइल भी।

आप अपने ओक्टा खाते के डोमेन को |_+_| . में भी डालेंगे फ़ाइल। यह ओक्टा डैशबोर्ड का होस्टनाम है जिसका आप वर्तमान में उपयोग कर रहे हैं, लेकिन बिना |_+_| अंश। यह कुछ इस तरह दिखना चाहिए |_+_|।

उन सभी मानों को लिखने के बाद, आपका |_+_| फ़ाइल कुछ इस तरह दिखनी चाहिए:

class-transformer

ये सभी मान अगले भाग के लिए आवश्यक हैं।

ओक्टा एपीआई के साथ प्रमाणीकरण एकीकृत करें

इस परियोजना के लिए आपको जिन ओक्टा एपीआई की आवश्यकता है, वे प्रमाणीकरण एपीआई और उपयोगकर्ता प्रबंधन एपीआई हैं।

दोनों npm संकुल के माध्यम से अच्छी तरह से उजागर होते हैं |_+_| और |_+_|.

बनाएं |_+_| उन सेवाओं के साथ एकीकृत करने के लिए फ़ाइल:

class-validator

अब आपने ओक्टा के साथ एक उपयोगकर्ता को पंजीकृत करने, ईमेल और पासवर्ड का उपयोग करके एक सत्र आईडी बनाने और एक उपयोगकर्ता को उनकी आईडी से लाने के कार्यों को उजागर किया है।

इस परियोजना के लिए उपयोगकर्ता प्रबंधन और प्रमाणीकरण के लिए आपको बस इतना ही चाहिए।

एक लॉगिन एंडपॉइंट बनाएं

प्रमाणीकरण की अनुमति देने के लिए, आपको एक लॉगिन समापन बिंदु की आवश्यकता है। एक |_+_| . बनाएं फ़ाइल:

server.js

अब आप स्वैगर पेज को |_+_| . पर रीफ्रेश कर सकते हैं नया प्रयोग करने के लिए |_+_| समापन बिंदु

वर्तमान में हमारे पास सर्वर के माध्यम से उपयोगकर्ता को पंजीकृत करने का कोई तरीका नहीं है, इसलिए आप एक बनाने के लिए ओक्टा के डैशबोर्ड का उपयोग कर सकते हैं और फिर एक |_+_| संबंधित ईमेल और पासवर्ड के साथ समापन बिंदु।

उपयोगकर्ताओं को बनाने और लाने के लिए अंतिम बिंदु बनाएं

ऐसा कहने के बाद, उपयोगकर्ता निर्माण और लाने के लिए अंतिम बिंदु बनाते हैं।

बनाएं |_+_| फ़ाइल बनाएं और उसमें एक |_+_| . बनाएं फ़ाइल:

node

|_+_| . को छोड़कर यहां सब कुछ काफी हद तक समान है और |_+_| सत्यापनकर्ता

वे एक अनुरोध को निष्पादित होने से रोकते हैं यदि सर्वर को भेजे गए डेटा में एक वैध ईमेल और गैर-रिक्त पहला और अंतिम नाम और पासवर्ड नहीं है।

आप उन सत्यापनकर्ताओं को ताज़ा करके आज़मा सकते हैं |_+_| पृष्ठ और क्रियान्वित |_+_| कुछ दोषपूर्ण डेटा के साथ समापन बिंदु।

एपीआई सुरक्षित करें

हमें एक के लिए दो और चीजों की आवश्यकता है सुरक्षित एपीआई : लॉग-इन उपयोगकर्ता और एक |_+_| . की पहचान करने के लिए प्रमाणीकरण मिडलवेयर गैर-सार्वजनिक समापन बिंदुओं को अनाम पहुंच से बचाने के लिए गार्ड।

एक |_+_| . बनाएं फ़ाइल:

src

यह मिडलवेयर अर्क |_+_| कुकीज़ से और सत्र की जानकारी को |_+_| . से जोड़ता है अनुरोध वस्तु की कुंजी।

बनाए गए मिडलवेयर का उपयोग करने के लिए, इसे एप्लिकेशन मॉड्यूल पर लागू करें। |_+_| परिवर्तन के बाद इस तरह दिखना चाहिए:

Foxsportsgo..com/roku
src/application.module.ts

अगला प्रमाणीकरण गार्ड है। एक |_+_| . बनाएं फ़ाइल:

src/server.ts

अब हम अंत में एक ब्लॉग पोस्ट बनाने के लिए तैयार हैं!

एक ब्लॉग पोस्ट बनाएं

ब्लॉग पोस्ट निर्माण की अनुमति देने के लिए, आइए हमारे |_+_| . का विस्तार करें जोड़ने के लिए नियंत्रक |_+_| तरीका। विधि को अनधिकृत उपयोग के खिलाफ सुरक्षित किया जाना चाहिए और उपयोग करने के लिए संशोधित भी किया जाना चाहिए |_+_| उपयोगकर्ता के सत्र से निकाला गया।

यही है |_+_| फ़ाइल जोड़ने के बाद दिखती है |_+_| तरीका:

npm start

ताज़ा करने के बाद |_+_| पृष्ठ फिर से, आपको अंततः ब्लॉग पोस्ट बनाने में सक्षम होना चाहिए (लेकिन केवल एक सफल लॉगिन के बाद)।

बहुत बढ़िया!

बधाई हो। आपने NodeJS और टाइपस्क्रिप्ट का उपयोग करके एक छोटा ब्लॉगिंग इंजन समाप्त कर लिया है।

आपने एक साधारण REST API को लागू करने और दस्तावेज़ करने के लिए टाइपस्क्रिप्ट के टाइपिंग सिस्टम का लाभ उठाया।

ध्यान दें कि अलग-अलग लिखे जाने के बजाय एपीआई प्रलेखन और कार्यान्वयन को एक साथ कैसे रखा जाता है? यह एपीआई के विकसित होते ही डॉक्स और कार्यान्वयन को सिंक में रखने में मदद करता है।



#नोड-जेएस #टाइपस्क्रिप्ट #जावास्क्रिप्ट #वेब-विकास #कोणीय

Developer.okta.com

Node.js और टाइपस्क्रिप्ट का उपयोग करके ब्लॉगिंग इंजन कैसे बनाएं

इस ट्यूटोरियल में, हमें ब्लॉगिंग इंजन के लिए एक नए बैकएंड की आवश्यकता है। इस ऐप में एक शीर्षक, सामग्री और लेखक के साथ ब्लॉग पोस्ट की एक सूची होगी। आप सीखेंगे कि NodeJS और टाइपस्क्रिप्ट का उपयोग करके ब्लॉगिंग इंजन कैसे बनाया जाता है