सबसे पहले हम समझते हैं कि Node.js क्या है? जब हम Node.js को अपने सिस्टम में इंस्टॉल करते हैं, तो इसके द्वारा हम क्या कर सकते हैं? सबसे पहले इस पर विचार करते हैं।
node command
जिस प्रकार आप C# या C++ या C प्रोग्रामिंग लैंग्वेज के सॉफ़्टवेयर को इंस्टॉल करते हैं, तो वह एक compiler प्रदान करता है, जिसकी मदद से आप उस प्रोग्रामिंग लैंग्वेज में जब भी कुछ लिखते हैं, तो उस लैंग्वेज की गलतियों को पकड़ने में मदद मिलती है। साथ ही, लैंग्वेज को compile करने और उस लैंग्वेज के आधार पर जो सॉफ़्टवेयर बनता है, उसका EXE फाइल प्रदान करने में मदद करता है। फिर उस EXE फाइल को हम किसी भी मशीन पर जो मशीन कंपैटिबल हो, उस पर रन कर सकते हैं। इस प्रकार, जब हम प्रोग्रामिंग लैंग्वेज की मदद से कोई एप्लिकेशन विकसित करते हैं, तो हमें सॉफ़्टवेयर द्वारा न केवल compiler प्रदान किया जाता है, बल्कि और भी कई सारे debugging और build से संबंधित tools प्रदान किए जाते हैं।
जब आप Node.js को अपने सिस्टम में इंस्टॉल करते हैं, तब क्या होता है? तब आप node कमांड की मदद से किसी JavaScript फाइल को रन कर सकते हैं।
C:\Users\shribodh>node --help
Usage: node [options] [ script.js ] [arguments]
node inspect [options] [ script.js | host:port ] [arguments]
उपर के node कमांड से स्पष्ट है कि हम किसी JavaScript स्क्रिप्ट को रन कर सकते हैं।
Develop Server Side App
Node को अपने सिस्टम में इंस्टॉल करके हम कोई भी server-side application बना सकते हैं। Server-side application की खासियत यह होती है कि यह database के साथ कनेक्शन स्थापित कर सकता है और मशीन के विभिन्न प्रकार के फाइलों को प्राप्त कर सकता है, उन्हें modify कर सकता है या उन्हें delete कर सकता है। इस तरह की खूबी किसी client-side web application जैसे ब्राउज़र या JavaScript की मदद से जो बनते हैं, उन एप्लिकेशनों में नहीं होती। ऐसा इसलिए होता है ताकि ब्राउज़र या अन्य क्लाइंट एप्लिकेशनों द्वारा मशीन के डेटा को corrupt या नुकसान ना पहुंच सके। इसके विपरीत, server-side application को विकसित करने वाले सॉफ़्टवेयर में database से कनेक्शन करने और database से फाइलों को एक्सेस करने की खासियत होती है।
REST API based Applications
Node.js की मदद से हम ऐसे कई सारे एप्लिकेशन बना सकते हैं, जो server के फाइलों को modify करने से संबंधित हो या database से फाइल प्राप्त करके API डेटा के रूप में परिवर्तित करने की बात हो। इन सभी कार्यों के लिए Node.js सक्षम है। यही कारण है कि Node.js जैसे ज्यादातर सॉफ़्टवेयर RESTful API से संबंधित होते हैं। यहां भी API सर्वर-साइड API के प्रति client request भेजता है और Node.js API database के साथ कनेक्शन स्थापित करके डेटा को JSON के रूप में या plain text के रूप में या XML के रूप में client के पास भेज देता है। आमतौर पर Node.js का उपयोग यूज़र इंटरफेस को डिज़ाइन करने के लिए नहीं किया जाता, बल्कि server-side प्रोग्रामिंग के लिए किया जाता है। Server-side प्रोग्रामिंग का मुख्य कार्य database से कनेक्शन स्थापित करके डेटा को प्राप्त करना और client के पास भेजना है। Database के अलावा, server के मशीन के भीतर जितने भी अलग-अलग तरह के फाइल होते हैं, चाहे वह HTML वेब पेज हो या कोई अन्य प्रकार का static फाइल हो, जैसे इमेज, ऑडियो, वीडियो फाइल आदि, इन सभी फाइलों को client द्वारा request करने पर वेब सर्वर द्वारा भेज दिया जाता है। Node.js का उपयोग server एप्लिकेशन बनाने के रूप में किया जाता है, और विशेष रूप से हम यह कह सकते हैं कि Node.js का उपयोग API आधारित ऐप बनाने में किया जाता है, खासकर RESTful API को, जिसमें URL की uniformity का बहुत ध्यान रखा जाता है। URL की uniformity या सुसंगतता का अभिप्राय है कि client URL के आधार पर अलग-अलग प्रकार की request को server के पास भेजता है। RESTful API की सबसे बड़ी विशेषता उसका URL होता है, जिससे server डेटा को आमतौर पर JSON के रूप में भेजता है। पहले XML टेक्नोलॉजी का उपयोग ज्यादा होता था, लेकिन अब JSON को अधिक प्राथमिकता दी जा रही है, क्योंकि यह lightweight होता है।
NPM और Node
अब तक हमने समझ लिया कि Node.js का उपयोग किसलिए किया जाता है। अब हम देखेंगे कि Node.js का उपयोग अपने सिस्टम पर किस प्रकार कर सकते हैं। जब आप Node.js को इंस्टॉल करते हैं, तो उसके साथ ही एक NPM नाम का पैकेज भी इंस्टॉल होता है। NPM का फुल फॉर्म Node Package Manager होता है। Node पैकेज मैनेजर की मदद से हम Node से संबंधित अलग-अलग प्रकार के पैकेज को विकसित होने वाले एप्लिकेशन में शामिल कर सकते हैं। अलग-अलग तरह के Node पैकेज को एप्लिकेशन में उपयोग करने के लिए NPM की सहायता ली जाती है। जब हम Node.js को इंस्टॉल करते हैं, तो उसके साथ ही NPM, अर्थात Node Package Manager, भी इंस्टॉल हो जाता है।
हमने समझ लिया कि Node पैकेज मैनेजर क्या होता है। Node के भीतर ज्यादातर काम कमांड लाइन पर होता है, अर्थात हम टर्मिनल पर अपने कमांड लिखकर किसी कार्य को संपादित करते हैं। आपको यहां दो बातें ध्यान में रखनी चाहिए। एक, आप Node से संबंधित कमांड लिखते हैं, और दूसरी, आप NPM से संबंधित कमांड लिखते हैं। जो Node से संबंधित कमांड हैं और जो NPM, अर्थात Node पैकेज मैनेजर से संबंधित कमांड हैं, इन दोनों को अच्छे से जानना जरूरी है। आप NPM का उपयोग पैकेज को इंस्टॉल करने के लिए करते हैं, लेकिन यह पैकेज कहां इंस्टॉल होता है? जब आप कोई Node.js आधारित एप्लिकेशन विकसित करते हैं, तो उसके भीतर Node का पैकेज इंस्टॉल होता है।
npm command
C:\Users\shribodh>npm --help
npm <command>
Usage:
- npm install install all the dependencies in your project
- npm install <foo> add the <foo> dependency to your project
- npm test run this project's tests
- npm run <foo> run the script named <foo>
- npm <command> -h quick help on <command>
- npm -l display usage info for all commands
- npm help <term> search for help on <term> (in a browser)
- npm help npm more involved overview (in a browser)
All commands:
access, adduser, audit, bugs, cache, ci, completion, config, dedupe, deprecate, diff, dist-tag, docs, doctor, edit, exec, explain, explore, find-dupes, fund, get, help, help-search, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, query, rebuild, repo, restart, root, run-script, sbom, search, set, shrinkwrap, star, stars, start, stop, team, test, token, uninstall, unpublish, unstar, update, version, view, whoami
Develop App based on Node and NPM
आइये हम Node पर आधारित application बनाते हैं और सीखते हैं कि कैसे इन दोनों का उपयोग किया जाता है।
सबसे पहले आप अपने डेस्कटॉप पर एक फ़ोल्डर बनाएँ और उसका एक वांछित नाम दे दीजिए। यह नाम आपकी application के नाम के अनुरूप होना चाहिए। फ़ोल्डर की भीतर जाकर राइट क्लिक करके आप अपने Visual Studio Code editor को ओपन कर लीजिए। Visual Studio Code editor के खुलने के बाद आप इसके टर्मिनल को ओपन कीजिए। टर्मिनल के भीतर आप निम्नलिखित command को टाइप कीजिए:
npm init
इस command को टाइप करने के बाद जब आप ENTER key प्रेस करते हैं तो आपके सिस्टम में एक package.json फाइल फ़ोल्डर के भीतर बन जाएगी। जब पहली बार आप ENTER प्रेस करते हैं, तो यह आपसे कई तरह के इनपुट के लिए आग्रह करेगा। आप जितने भी इनपुट के लिए पूछे जाएं, उन सभी के लिए सिर्फ ENTER प्रेस करते जाइए। अंत में, आपकी package.json फाइल आपके रूट फ़ोल्डर (जैसा कि आपने डेस्कटॉप पर बनाया था) के भीतर बन जाएगी। इस पैकेज का उपयोग एप्लिकेशन के भीतर पैकेज के मैनेजमेंट के लिए किया जाता है।
याद रखें कि Node.js का एप्लिकेशन पैकेज पर आधारित होता है। Node.js एप्लिकेशन में कई सारे पैकेज होते हैं, इसलिए उन पैकेज का मैनेजमेंट करना आवश्यक होता है। इन सभी कार्यों के लिए package.json फाइल का उपयोग किया जाता है।
जब आपका package.json पहली बार बनता है, तो उसे खोलने पर आपको आपकी एप्लिकेशन का नाम, डिस्क्रिप्शन और अन्य जानकारी मिलती है, जिसके बारे में हम धीरे-धीरे आगे सीखेंगे। जिस नाम का आपने फ़ोल्डर बनाया, उसी नाम को एप्लिकेशन का नाम मानकर package.json फाइल के भीतर एप्लिकेशन का नाम दे दिया जाता है, और डिस्क्रिप्शन में कुछ नहीं दिखता क्योंकि आपने ENTER प्रेस करके कोई जानकारी नहीं दी थी।
अभी तक आपने अपने एप्लिकेशन में कोई पैकेज इंस्टॉल नहीं किया है, इसलिए आपकी एप्लिकेशन में सिर्फ package.json फाइल होगी। सबसे पहले हम अपने एप्लिकेशन में एक पैकेज इंस्टॉल करेंगे। जब आप कोई पैकेज अपने सिस्टम में इंस्टॉल करते हैं, तो इंस्टॉल करते ही आपकी एप्लिकेशन के रूट फ़ोल्डर के भीतर node_modules नाम का एक फ़ोल्डर बन जाएगा। यह node_modules फ़ोल्डर उन सारे पैकेज को अपने भीतर रखेगा।
जब-जब आप अपना कोई नया पैकेज अपने एप्लिकेशन में इंस्टॉल करेंगे, साथ ही साथ package.json फाइल के भीतर भी उन पैकेज की जानकारी जैसे पैकेज का नाम, उसका वर्शन आदि लिखा जाएगा। जैसे ही आप कोई पैकेज अपने एप्लिकेशन में इंस्टॉल करते हैं, तो node_modules नामक फ़ोल्डर बनता है, और साथ ही साथ package-lock.json नाम का भी एक नया फाइल बनता है।
package-lock.json का कार्य प्रत्येक पैकेज के स्रोत, URL से लेकर अन्य महत्वपूर्ण जानकारी को संरक्षित करना है। इस प्रकार, package.json और package-lock.json दोनों मिलकर एप्लिकेशन के पैकेज मैनेजमेंट में महत्वपूर्ण भूमिका निभाते हैं।
याद रखें कि आपकी एप्लिकेशन का सबसे महत्वपूर्ण फाइल package.json होता है, जिसे पढ़कर आप या कोई भी अन्य व्यक्ति यह अंदाजा लगा सकता है कि किन-किन पैकेज का उपयोग करके आपका एप्लिकेशन विकसित किया गया है। पैकेज के versions को लॉक कर प्रोजेक्ट के packages को सुरक्षित रखा जाता है
© अजीत कुमार, सर्वाधिकार सुरक्षित।
Related Post: Node JS Introduction in Hindi
No comments:
Post a Comment