ഒരു 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('url'), require('fs'), ഒപ്പം require('path'). യഥാക്രമം ഒരു ലളിതമായ HTTP സെർവർ സൃഷ്ടിക്കുന്നതിനും URL-കൾ പാഴ്‌സുചെയ്യുന്നതിനും ഫയൽ സിസ്റ്റം കൈകാര്യം ചെയ്യുന്നതിനും ഫയൽ പാതകളിൽ പ്രവർത്തിക്കുന്നതിനും ഈ മൊഡ്യൂളുകൾ അത്യന്താപേക്ഷിതമാണ്. പോലുള്ള ഒരു കമാൻഡ് ഉപയോഗിച്ച് സെർവർ ആരംഭിക്കുമ്പോൾ node server.js folder, വഴി ഫോൾഡർ ആർഗ്യുമെൻ്റ് സ്ക്രിപ്റ്റിലേക്ക് കൈമാറുന്നു process.argv അറേ. ഈ അറേയിൽ എല്ലാ കമാൻഡ് ലൈൻ ആർഗ്യുമെൻ്റുകളും അടങ്ങിയിരിക്കുന്നു process.argv[0] 'നോഡ്' ആയി, process.argv[1] സ്ക്രിപ്റ്റ് പാത്ത്, തുടർന്നുള്ള ഘടകങ്ങൾ അധിക ആർഗ്യുമെൻ്റുകൾ.

ഉപയോഗിച്ച് ഫോൾഡർ ആർഗ്യുമെൻ്റ് നൽകിയിട്ടുണ്ടോ എന്ന് സ്ക്രിപ്റ്റ് ആദ്യം പരിശോധിക്കുന്നു process.argv[2]. ഇല്ലെങ്കിൽ, അത് ഒരു പിശക് സന്ദേശം രേഖപ്പെടുത്തി പുറത്തുകടക്കുന്നു. ആർഗ്യുമെൻ്റ് നിലവിലുണ്ടെങ്കിൽ, സെർവർ സൃഷ്ടിച്ചത് ഉപയോഗിച്ചാണ് http.createServer(). സെർവർ അഭ്യർത്ഥിച്ച 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}`);
});

ഒരു പ്രത്യേക ഫോൾഡർ ഉപയോഗിച്ച് സെർവർ സമാരംഭിക്കുന്നു

കമാൻഡ് ലൈൻ

# Launch the server with the specified folder
$ node server.js path/to/your/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. ഉപയോഗിച്ച് നിങ്ങൾക്ക് കമാൻഡ് ലൈൻ ആർഗ്യുമെൻ്റുകൾ ആക്സസ് ചെയ്യാൻ കഴിയും process.argv അറേ.
  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 ഡവലപ്പർക്കും ഈ സാങ്കേതിക വിദ്യകളിൽ പ്രാവീണ്യം നേടുന്നത് മൂല്യവത്തായ ഒരു കഴിവാണ്.