Node.js में कमांड लाइन से इनपुट कैसे स्वीकार करें?

Node Js Mem Kamanda La Ina Se Inaputa Kaise Svikara Karem



Node.js एक प्रसिद्ध ओपन-सोर्स मुक्त जावास्क्रिप्ट रनटाइम वातावरण है जो उपयोगकर्ताओं को किसी फ़ाइल से या सीधे कमांड लाइन से जावास्क्रिप्ट कोड निष्पादित करने की अनुमति देता है। किसी फ़ाइल से जावास्क्रिप्ट कोड चलाने के लिए एक बाहरी 'की आवश्यकता होती है। जे एस 'फ़ाइल कमांड जबकि कमांड लाइन सीधे लाइन दर लाइन जावास्क्रिप्ट कोड निष्पादित करती है।

कभी-कभी, उपयोगकर्ता को 'के माध्यम से कमांड लाइन से Node.js एप्लिकेशन लॉन्च करते समय जानकारी को कॉन्फ़िगर करने की आवश्यकता होती है' नोड<फ़ाइलनाम> ”। ऐसी स्थिति में, उपयोगकर्ता को उस जानकारी को 'में लिखने के बजाय सीधे निष्पादन कमांड के साथ इनपुट के रूप में पास करना होगा।' जे एस ' फ़ाइल।







यह लेख Node.js में कमांड लाइन से इनपुट स्वीकार करने के सभी संभावित तरीकों पर चर्चा करेगा।



Node.js में कमांड लाइन से इनपुट कैसे स्वीकार करें?

Node.js कमांड लाइन से इनपुट स्वीकार करने के लिए निम्नलिखित मॉड्यूल प्रदान करता है:



आइए 'से शुरू करें पढ़ने के लिए लाइन ' मापांक।





आवश्यक शर्तें : किसी भी विधि के व्यावहारिक कार्यान्वयन के लिए आगे बढ़ने से पहले, पहले एक ' बनाएं। जे एस किसी भी नाम की फ़ाइल बनाएं और उसमें सभी स्रोत कोड लिखें। यहां, हमने एक ' बनाया है अनुक्रमणिका .js” फ़ाइल।

विधि 1: 'रीडलाइन' मॉड्यूल का उपयोग करके कमांड लाइन से इनपुट स्वीकार करें

पढ़ने के लिए लाइन मॉड्यूल पठनीय स्ट्रीम से उपयोगकर्ता इनपुट को पढ़ने और परिणामी आउटपुट के रूप में अपनी प्रतिक्रिया वापस करने के लिए एक इंटरफ़ेस बनाता है। यह एक अंतर्निर्मित मॉड्यूल है इसलिए उपयोगकर्ता इसे 'का उपयोग करके इंस्टॉल किए बिना सीधे Node.js एप्लिकेशन में आयात कर सकता है।' NPM ”।



इस परिदृश्य में, इसका उपयोग कमांड लाइन से इनपुट लेने और फिर उसे आउटपुट स्क्रीन पर प्रिंट करने के लिए किया जाता है। यहाँ इसका व्यावहारिक कार्यान्वयन है:

कॉन्स्ट पढ़ने के लिए लाइन = ज़रूरत होना ( 'पढ़ने के लिए लाइन' )
कॉन्स्ट आर एल = पढ़ने के लिए लाइन। इंटरफ़ेस बनाएं ( {
इनपुट : प्रक्रिया। stdin ,
आउटपुट : प्रक्रिया। stdout
} )
आरएल. सवाल ( `सर्वश्रेष्ठ मंच के लिए तकनीकी सामग्री ? ` , वेबसाइट => {
आरएल. सवाल ( `आप किस श्रेणी का पता लगाना चाहेंगे ? ` , वर्ग => {
सांत्वना देना। लकड़ी का लट्ठा ( `वेबसाइट : $ { वेबसाइट } , वर्ग : $ { वर्ग } ` )
आरएल. बंद करना ( )
} )
} )

उपरोक्त कोड पंक्तियों का विवरण इस प्रकार है:

  • सबसे पहले, ' ज़रूरत होना ()' विधि 'आयात करती है पढ़ने के लिए लाइन वर्तमान Node.js प्रोजेक्ट में मॉड्यूल।
  • अगला, ' इंटरफ़ेस बनाएं ()' विधि 'निर्दिष्ट करती है' इनपुट और आउटपुट ” एक वस्तु के रूप में प्रवाहित होती है। “ इनपुट 'स्ट्रीम' का उपयोग करता है प्रक्रिया.stdin उपयोगकर्ता से इनपुट लेने के लिए संपत्ति।
  • आउटपुट 'स्ट्रीम' का उपयोग करता है प्रक्रिया.stdout इनपुट स्ट्रीम को पढ़ने और इसे दिए गए इनपुट स्ट्रीम के मानक आउटपुट के रूप में प्रिंट करने के लिए संपत्ति।
  • उसके बाद, ' rl.प्रश्न ()'' विधि उपयोगकर्ता से इनपुट लेती है। यह प्रश्न को पहले और कॉलबैक फ़ंक्शन को दूसरे तर्क के रूप में पास करता है। दिया गया कॉलबैक एरो फ़ंक्शन उपयोगकर्ता द्वारा दर्ज किए गए मानों को पुनः प्राप्त करता है।
  • दी गई परिभाषा में ' वेबसाइट ', और यह ' वर्ग 'कॉलबैक एरो फ़ंक्शन, ' कंसोल.लॉग ()' विधि का उपयोग दर्ज किए गए मानों को प्रदर्शित करने के लिए किया जाता है।
  • अंत में, ' आरएल.बंद करें ()'' विधि उपरोक्त निर्मित इंटरफ़ेस को बंद कर देती है।

उत्पादन

आरंभ करें ' अनुक्रमणिका .js” फ़ाइल दिए गए आदेश को निष्पादित करके:

नोड सूचकांक. जे एस

निम्नलिखित आउटपुट एक रीडलाइन इंटरफ़ेस दिखाता है जो कमांड लाइन से उपयोगकर्ता इनपुट लेता है और फिर दर्ज किए गए मान को मानक आउटपुट के रूप में प्रदर्शित करता है:

विधि 2: 'रीडलाइन-सिंक' मॉड्यूल का उपयोग करके कमांड लाइन से इनपुट स्वीकार करें

रीडलाइन-सिंक ” तृतीय-पक्ष मॉड्यूल है जो हार्डकोडेड प्रश्नों से संबंधित जानकारी को समकालिक रूप से पुनर्प्राप्त करता है और भविष्य के संचालन के लिए उनके संबंधित उत्तरों को संग्रहीत करता है। यह कमांड लाइन से क्लाइंट और सर्वर के बीच संचार के रूप में कार्य करता है।

एसिंक्रोनस और सिंक्रोनस मॉड्यूल के बीच मुख्य अंतर यह है कि ' अतुल्यकालिक स्रोत कोड के निष्पादन को तब तक अवरुद्ध करता है जब तक कि उसका निर्दिष्ट कार्य पूरा नहीं हो जाता है जबकि सिंक्रोनस मॉड्यूल कोड लाइन को क्रमिक तरीके से लाइन दर लाइन निष्पादित करते हैं।

'रीडलाइन-सिंक' मॉड्यूल स्थापित करें

'रीडलाइन-सिंक' मॉड्यूल एक अंतर्निहित मॉड्यूल नहीं है, इसलिए इसे नीचे दिए गए आदेश को निष्पादित करके मैन्युअल रूप से स्थापित करने की आवश्यकता है:

एनपीएम इंस्टॉल रीडलाइन - साथ-साथ करना

आउटपुट से पता चलता है कि रीडलाइन-सिंक मॉड्यूल को वर्तमान Node.js प्रोजेक्ट में जोड़ा गया है:

अब, 'का उपयोग करें रीडलाइन-सिंक व्यावहारिक रूप से दिए गए कोड स्निपेट का पालन करके मॉड्यूल:

था रीडलाइनसिंक = ज़रूरत होना ( 'रीडलाइन-सिंक' ) ;
था empName = रीडलाइनसिंक. सवाल ( 'कर्मचारी का नाम: ' ) ;
था जद = रीडलाइनसिंक. सवाल ( 'नौकरी का विवरण: ' ) ;
था कंपनी = रीडलाइनसिंक. सवाल ( 'कंपनी: ' , {
} ) ;
सांत्वना देना। लकड़ी का लट्ठा ( empName + 'के रूप में काम करता है' + जद + ' में ' + कंपनी ) ;

उपरोक्त कोड की व्याख्या इस प्रकार है:

  • पहले ' रीडलाइन-सिंक 'मॉड्यूल को फ़ाइल के अंदर आयात किया जाता है और इसका ऑब्जेक्ट एक नए वेरिएबल में संग्रहीत किया जाता है' रीडलाइनसिंक ”।
  • इसके बाद, 'की सहायता से प्रश्न पूछा जाता है सवाल ()' विधि को तर्क के रूप में निर्दिष्ट करके।
  • अगले प्रश्न पूछने के लिए भी यही प्रक्रिया अपनाई जाती है।
  • उसके बाद, ' कंसोल.लॉग ()' विधि का उपयोग उद्धृत स्ट्रिंग के साथ दर्ज किए गए मानों को प्रदर्शित करने के लिए किया जाता है।

उत्पादन

निष्पादित करें ' अनुक्रमणिका .js” फ़ाइल:

नोड सूचकांक. जे एस

आउटपुट दिखाता है कि सिंक्रोनस तरीके से, उपयोगकर्ताओं से इनपुट लिया गया है और 'का उपयोग करके प्रदर्शित किया गया है' रीडलाइन-सिंक ' मापांक:

विधि 3: 'प्रॉम्प्ट' मॉड्यूल का उपयोग करके कमांड लाइन से इनपुट स्वीकार करें

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

'प्रॉम्प्ट' मॉड्यूल स्थापित करें

तत्पर 'यह एक तृतीय-पक्ष मॉड्यूल भी है जिसे' की सहायता से आसानी से स्थापित किया जा सकता है NPM ' इस प्रकार से:

एनपीएम इंस्टाल प्रॉम्प्ट -- बचाना

उपरोक्त आदेश में, ' -बचाना 'ध्वज' जोड़ता है तत्पर 'मॉड्यूल से' package.json ' फ़ाइल।

इसका विश्लेषण किया जा सकता है कि ' तत्पर 'वर्तमान Node.js प्रोजेक्ट में जोड़ा गया है:

अब, इंस्टॉल का उपयोग करें ' तत्पर 'मॉड्यूल व्यावहारिक रूप से निम्नलिखित कोड स्निपेट की सहायता से:

कॉन्स्ट तत्पर = ज़रूरत होना ( 'तत्पर' )
तत्पर। शुरू ( )
तत्पर। पाना ( [ 'लेखक का नाम' , 'वर्ग' ] , ( ग़लती होना , परिणाम ) => {
अगर ( ग़लती होना ) {
फेंक ग़लती होना

} अन्य {
सांत्वना देना। लकड़ी का लट्ठा ( `$ { परिणाम। लेखक का नाम } $ पर काम करता है { परिणाम। वर्ग } ` )

}
} )

उपर्युक्त कोड ब्लॉक में:

  • ज़रूरत होना ()' विधि 'आयात करती है तत्पर परियोजना में मॉड्यूल.
  • शुरू ()'' विधि प्रॉम्प्ट शुरू करती है।
  • पाना ()'' विधि कमांड लाइन के माध्यम से उपयोगकर्ता से इनपुट लेती है। यह संपत्ति के नाम और कॉलबैक एरो फ़ंक्शन को पहले और दूसरे पैरामीटर के रूप में निर्दिष्ट करता है।
  • कॉलबैक फ़ंक्शन के साथ ' ग़लती होना ' और ' परिणाम 'पैरामीटर एक' को परिभाषित करता है यदि नहीं तो ' कथन।
  • यदि किसी भी प्रकार की त्रुटि होती है तो “ अगर 'ब्लॉक उस त्रुटि को फेंक देगा अन्यथा' अन्य ब्लॉक आउटपुट के रूप में निर्दिष्ट गुणों के मान प्रदर्शित करेगा।

उत्पादन

चलाएँ ' अनुक्रमणिका .js” फ़ाइल:

नोड सूचकांक. जे एस

निम्नलिखित आउटपुट निर्दिष्ट गुणों के आधार पर उपयोगकर्ता इनपुट लेता है और फिर आउटपुट के रूप में उनके मान पुनर्प्राप्त करता है:

विधि 4: 'इनक्वायरर' मॉड्यूल का उपयोग करके कमांड लाइन से इनपुट स्वीकार करें

Node.js में, ' इन्क्वायरर 'कमांड लाइन से इनपुट लेने का एक आसान तरीका है। यह उपयोगकर्ताओं से इनपुट लेने और फिर 'का उपयोग करके आउटपुट लौटाने के लिए कई उपयोगी तरीकों के साथ आता है।' उत्तर ' वस्तु और '. तब ()” अंतर्निहित विधि।

यह कमांड लाइन के माध्यम से उपयोगकर्ता से सूची, विकल्प, इनपुट, चेकबॉक्स और बहुत कुछ जैसे विभिन्न प्रकार के प्रश्न पूछने के लिए उपयोगी है। यह क्वेरी-आधारित कार्यों के लिए कमांड लाइन इंटरफ़ेस इंटरफ़ेस को इंटरैक्टिव बनाने का एक सुविधाजनक तरीका प्रदान करता है।

'पर विस्तृत मार्गदर्शिका का पालन करें Node.js इन्क्वायरर का उपयोग करके कमांड लाइन से इनपुट लें 'व्यावहारिक प्रदर्शन के लिए।

युक्ति: नोड में कमांड लाइन से तर्क कैसे पारित करें?

उपयोगकर्ता कमांड लाइन से भी तर्क पारित कर सकता है। इस प्रयोजन के लिए, ' प्रक्रिया.argv 'संपत्ति का उपयोग किया जा सकता है। “ argv '' प्रक्रिया 'मॉड्यूल की अंतर्निहित संपत्ति है जिसका उपयोग' का उपयोग करके Node.js एप्लिकेशन को चलाने के दौरान कमांड लाइन से तर्कों को पारित करने के लिए किया जाता है। नोड<फ़ाइलनाम> ' आज्ञा।

'पर विस्तृत मार्गदर्शिका का पालन करें Node.js में कमांड लाइन से तर्क पारित करें 'व्यावहारिक प्रदर्शन के लिए।

यह सब Node.js में कमांड लाइन से इनपुट स्वीकार करने के बारे में है।

निष्कर्ष

कमांड लाइन से इनपुट स्वीकार करने के लिए, एसिंक्रोनस का उपयोग करें ' पढ़ने के लिए लाइन ', या तुल्यकालिक ' रीडलाइन-सिंक ' मापांक। इसके अलावा, इसे 'के माध्यम से भी निष्पादित किया जा सकता है' तत्पर ' या ' इन्क्वायरर ' मापांक। के लिए छोड़कर ' रेडलाइन-सिंक ”मॉड्यूल, शेष सभी मॉड्यूल अतुल्यकालिक हैं। इस लेख में Node.js में कमांड लाइन से इनपुट स्वीकार करने के सभी संभावित तरीकों पर चर्चा की गई है।