Node.js प्रोग्रामला कमांड लाइन आर्ग्युमेंट्स पास करणे

Node.js प्रोग्रामला कमांड लाइन आर्ग्युमेंट्स पास करणे
Node.js प्रोग्रामला कमांड लाइन आर्ग्युमेंट्स पास करणे

कमांड लाइन वितर्कांसह Node.js सर्व्हर सुरू करणे

Node.js हे वेब सर्व्हर आणि ॲप्लिकेशन तयार करण्यासाठी एक शक्तिशाली व्यासपीठ आहे. एक सामान्य आवश्यकता म्हणजे विशिष्ट पॅरामीटर्स किंवा वितर्कांसह Node.js सर्व्हर सुरू करणे, जसे की फोल्डर निर्दिष्ट करणे. सर्व्हर स्क्रिप्ट चालवताना कमांड लाइन आर्ग्युमेंट पास करून हे साध्य करता येते.

वापरकर्ता इनपुट किंवा कॉन्फिगरेशन सेटिंग्जवर आधारित तुमच्या सर्व्हरचे वर्तन सानुकूलित करण्यासाठी तुमच्या Node.js कोडमध्ये या युक्तिवादांमध्ये प्रवेश कसा करायचा हे समजून घेणे महत्त्वाचे आहे. हे मार्गदर्शक तुम्हाला Node.js प्रोग्राममध्ये कमांड लाइन वितर्क कसे पास करायचे आणि पुनर्प्राप्त कसे करायचे ते दाखवेल.

आज्ञा वर्णन
process.argv Node.js प्रक्रियेला पास केलेल्या कमांड लाइन आर्ग्युमेंट्स असलेली ॲरे.
require('http') वेब सर्व्हर तयार करण्यासाठी अंगभूत HTTP मॉड्यूल आयात करते.
require('url') URL रिझोल्यूशन आणि पार्सिंगसाठी अंगभूत URL मॉड्यूल आयात करते.
require('fs') फाइल सिस्टमशी संवाद साधण्यासाठी अंगभूत फाइल सिस्टम मॉड्यूल आयात करते.
require('path') फाइल आणि निर्देशिका पथांसह कार्य करण्यासाठी अंगभूत पथ मॉड्यूल आयात करते.
url.parse() URL गुणधर्म असलेल्या ऑब्जेक्टमध्ये URL स्ट्रिंग पार्स करते.
path.join() प्लॅटफॉर्म-विशिष्ट विभाजक विभाजक म्हणून वापरून सर्व दिलेल्या पथ विभागांना एकत्र जोडते.
fs.readFile() असिंक्रोनसपणे फाइलची संपूर्ण सामग्री वाचते.

Node.js कमांड लाइन आर्ग्युमेंट्स समजून घेणे

प्रदान केलेल्या स्क्रिप्ट्समध्ये, आम्ही Node.js प्रोग्राममध्ये कमांड लाइन आर्ग्युमेंट्स पास आणि ऍक्सेस कसे करावे हे दाखवतो. सर्व्हर स्क्रिप्ट अनेक Node.js मॉड्यूल वापरते, यासह require('http'), , require('fs'), आणि require('path'). हे मॉड्यूल्स अनुक्रमे एक साधा HTTP सर्व्हर तयार करण्यासाठी, URL पार्स करण्यासाठी, फाइल सिस्टम हाताळण्यासाठी आणि फाइल पथांसह कार्य करण्यासाठी आवश्यक आहेत. सारख्या कमांडने सर्व्हर सुरू केल्यावर node server.js folder, फोल्डर वितर्क स्क्रिप्टवर द्वारे पास केले जाते रचना. या ॲरेमध्ये सर्व कमांड लाइन आर्ग्युमेंट्स आहेत process.argv[0] 'नोड' असणे, स्क्रिप्ट पथ असल्याने, आणि त्यानंतरचे घटक अतिरिक्त वितर्क आहेत.

स्क्रिप्ट प्रथम फोल्डर वितर्क प्रदान केले आहे का ते तपासते, वापरून process.argv[2]. नसल्यास, ते त्रुटी संदेश लॉग करते आणि बाहेर पडते. वितर्क उपस्थित असल्यास, सर्व्हर वापरून तयार केले जाते . सर्व्हर विनंती केलेली URL वाचतो, प्रदान केलेल्या फोल्डर पथ वापरून त्यात सामील होतो path.join(), आणि वापरून संबंधित फाइल वाचण्याचा प्रयत्न करते fs.readFile(). फाइल आढळल्यास, ती फाइल सामग्री प्रतिसाद म्हणून पाठवते; अन्यथा, ते 404 त्रुटी परत करते. हा दृष्टीकोन सुनिश्चित करतो की सर्व्हर निर्दिष्ट फोल्डरमधून फाइल्स सर्व्ह करतो, सर्व्हरचे वर्तन गतिमानपणे सानुकूलित करण्यासाठी कमांड लाइन वितर्क कसे हाताळायचे हे दाखवून देतो.

Node.js मध्ये कमांड लाइन आर्ग्युमेंट्स ऍक्सेस करणे

Node.js सह JavaScript

// server.js
const http = require('http');
const url = require('url');
const fs = require('fs');
const path = require('path');

// Get the folder from the command line arguments
const folder = process.argv[2];

// Check if the folder argument is provided
if (!folder) {
  console.error('Please provide a folder path');
  process.exit(1);
}

const server = http.createServer((req, res) => {
  const parsedUrl = url.parse(req.url);
  let pathname = path.join(folder, parsedUrl.pathname);

  fs.readFile(pathname, (err, data) => {
    if (err) {
      res.statusCode = 404;
      res.end(`File not found: ${pathname}`);
    } else {
      res.statusCode = 200;
      res.end(data);
    }
  });
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
  console.log(`Serving files from ${folder}`);
});

विशिष्ट फोल्डरसह सर्व्हर लाँच करणे

कमांड लाइन

Node.js मधील कमांड लाइन आर्ग्युमेंट्सचे स्पष्टीकरण

Node.js सह JavaScript

// process.argv is an array containing command line arguments
// process.argv[0] is 'node'
// process.argv[1] is the path to the script being executed
// process.argv[2] and beyond are the additional command line arguments
console.log(process.argv);

/* Output when running 'node server.js folder':
  [
    '/usr/local/bin/node',
    '/path/to/server.js',
    'folder'
  ]
*/

Node.js मधील कमांड लाइन आर्ग्युमेंट्सवर विस्तार करणे

कमांड लाइन वितर्क पास करणे आणि पुनर्प्राप्त करणे या मूलभूत गोष्टींव्यतिरिक्त, Node.js मध्ये विचारात घेण्यासाठी इतर प्रगत तंत्रे आणि सर्वोत्तम पद्धती आहेत. अशाच एका तंत्रात लायब्ररी वापरून कमांड लाइन वितर्क पार्स करणे समाविष्ट आहे minimist किंवा yargs. ही लायब्ररी युक्तिवाद हाताळण्याचा अधिक वापरकर्ता-अनुकूल मार्ग प्रदान करतात, ज्यामुळे तुम्हाला पर्याय परिभाषित करता येतात, डीफॉल्ट मूल्ये सेट करता येतात आणि आवश्यक युक्तिवाद लागू करता येतात. उदाहरणार्थ, सह minimist, तुम्ही वितर्कांना ऑब्जेक्टमध्ये पार्स करू शकता, ज्यामुळे त्यांना प्रवेश करणे आणि व्यवस्थापित करणे सोपे होईल. हे विशेषतः मोठ्या ऍप्लिकेशन्समध्ये उपयुक्त ठरू शकते जेथे कमांड लाइन वितर्क कॉन्फिगरेशन आणि वर्तनामध्ये महत्त्वपूर्ण भूमिका बजावतात.

वितर्कांसाठी भिन्न डेटा प्रकार हाताळणे ही दुसरी महत्त्वाची बाब आहे. डीफॉल्टनुसार, सर्व कमांड लाइन आर्ग्युमेंट्स स्ट्रिंग्स म्हणून मानले जातात. सारख्या लायब्ररी वापरणे minimist किंवा yargs, तुम्ही वितर्क संख्या, बुलियन किंवा स्ट्रिंग म्हणून पार्स केले जावे की नाही हे निर्दिष्ट करू शकता. हे सुनिश्चित करते की तुमचा अनुप्रयोग वितर्कांचा योग्य अर्थ लावतो. याव्यतिरिक्त, ही लायब्ररी तुम्हाला वितर्कांसाठी उपनाम सेट करण्याची परवानगी देतात, ज्यामुळे कमांड लाइन इंटरफेस वापरकर्त्यांसाठी अधिक अंतर्ज्ञानी बनते. या पद्धती लागू केल्याने तुमच्या Node.js ऍप्लिकेशन्सची मजबूती सुधारतेच पण स्पष्ट आणि लवचिक कमांड लाइन पर्याय प्रदान करून वापरकर्ता अनुभव देखील वाढतो.

Node.js कमांड लाइन वितर्कांबद्दल सामान्य प्रश्न

  1. मी Node.js मध्ये कमांड लाइन वितर्क कसे ॲक्सेस करू?
  2. आपण वापरून कमांड लाइन वितर्क प्रवेश करू शकता रचना.
  3. काय उपयोग आहे minimist कमांड लाइन वितर्क हाताळताना?
  4. minimist एक लायब्ररी आहे जी कमांड लाइन वितर्कांना अधिक व्यवस्थापित करण्यायोग्य ऑब्जेक्ट फॉरमॅटमध्ये पार्स करण्यात मदत करते.
  5. कमांड लाइन वितर्कांसाठी मी डीफॉल्ट मूल्ये सेट करू शकतो का?
  6. होय, लायब्ररी आवडतात yargs आणि minimist वितर्कांसाठी डीफॉल्ट मूल्ये सेट करण्यास अनुमती द्या.
  7. मी आवश्यक युक्तिवाद कसे लागू करू शकतो?
  8. सारख्या लायब्ररी वापरणे yargs, तुम्ही कोणते वितर्क आवश्यक आहेत ते परिभाषित करू शकता आणि ते गहाळ असल्यास त्रुटी संदेश देऊ शकता.
  9. कमांड लाइन वितर्कांसाठी मी विविध डेटा प्रकार कसे हाताळू?
  10. सारख्या ग्रंथालयांसह minimist, तुम्ही वितर्क प्रकार निर्दिष्ट करू शकता, जसे की संख्या, बुलियन किंवा स्ट्रिंग.
  11. युक्तिवाद उपनाम काय आहेत आणि ते कसे उपयुक्त आहेत?
  12. युक्तिवाद उपनावे ही कमांड लाइन पर्यायांसाठी पर्यायी नावे आहेत, ज्यामुळे CLI अधिक वापरकर्ता-अनुकूल बनते. तुम्ही लायब्ररी वापरून उपनाव सेट करू शकता yargs.
  13. एकामध्ये अनेक युक्तिवाद एकत्र करणे शक्य आहे का?
  14. होय, आर्ग्युमेंट पार्सिंग लायब्ररी वापरून, तुम्ही अनेक वितर्क एकत्र करू शकता आणि त्यांना एकल कॉन्फिगरेशन ऑब्जेक्ट म्हणून हाताळू शकता.
  15. कमांड लाइन आर्ग्युमेंट पार्सिंगमधील त्रुटी मी कशा हाताळू?
  16. लायब्ररी आवडतात yargs वापरकर्ता-अनुकूल त्रुटी संदेश प्रदर्शित करण्यासाठी अंगभूत त्रुटी हाताळणी यंत्रणा प्रदान करा.
  17. मी कमांड लाइन वितर्कांसह पर्यावरण व्हेरिएबल्स वापरू शकतो का?
  18. होय, Node.js ऍप्लिकेशन्स कॉन्फिगर करण्यासाठी पर्यावरण व्हेरिएबल्स आणि कमांड लाइन वितर्क दोन्ही वापरणे सामान्य आहे.

Node.js कमांड लाइन आर्ग्युमेंट्सवरील अंतिम विचार

लवचिक आणि डायनॅमिक ऍप्लिकेशन्स तयार करण्यासाठी Node.js मध्ये कमांड लाइन आर्ग्युमेंट्स कसे पास करावे आणि ऍक्सेस कसे करावे हे समजून घेणे महत्त्वाचे आहे. बिल्ट-इन मॉड्यूल्स आणि थर्ड-पार्टी लायब्ररीचा फायदा घेऊन, विकासक युक्तिवाद कार्यक्षमतेने हाताळू शकतात, डीफॉल्ट सेट करू शकतात आणि आवश्यकता लागू करू शकतात. हे ज्ञान केवळ कोड मजबूतीच सुधारत नाही तर स्पष्ट आणि व्यवस्थापित करण्यायोग्य कमांड लाइन पर्याय प्रदान करून वापरकर्त्याचा अनुभव देखील वाढवते. या तंत्रांवर प्रभुत्व मिळवणे हे कोणत्याही Node.js विकासकासाठी एक मौल्यवान कौशल्य आहे ज्याचे लक्ष्य कॉन्फिगर करण्यायोग्य आणि स्केलेबल अनुप्रयोग तयार करणे आहे.