$lang['tuto'] = "سبق"; ?> Node.js پروگرام میں کمانڈ لائن

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() یو آر ایل سٹرنگ کو کسی آبجیکٹ میں پارس کرتا ہے جس میں یو آر ایل کی خصوصیات ہیں۔
path.join() ایک حد بندی کے طور پر پلیٹ فارم سے مخصوص جداکار کا استعمال کرتے ہوئے تمام دیئے گئے راستے کے حصوں کو ایک ساتھ جوڑتا ہے۔
fs.readFile() غیر مطابقت پذیر طور پر فائل کے پورے مواد کو پڑھتا ہے۔

Node.js کمانڈ لائن دلائل کو سمجھنا

فراہم کردہ اسکرپٹس میں، ہم یہ ظاہر کرتے ہیں کہ کس طرح Node.js پروگرام میں کمانڈ لائن آرگومینٹس کو پاس کرنا اور ان تک رسائی حاصل کرنا ہے۔ سرور اسکرپٹ کئی Node.js ماڈیولز استعمال کرتا ہے، بشمول require('http')، require('url')، require('fs')، اور require('path'). یہ ماڈیولز بالترتیب ایک سادہ HTTP سرور بنانے، یو آر ایل کو پارس کرنے، فائل سسٹم کو سنبھالنے اور فائل پاتھ کے ساتھ کام کرنے کے لیے ضروری ہیں۔ جب سرور کو کمانڈ کے ساتھ شروع کیا جاتا ہے جیسے node server.js folder، فولڈر کی دلیل کو اسکرپٹ کے ذریعے منتقل کیا جاتا ہے۔ process.argv صف اس صف میں کمانڈ لائن کے تمام دلائل شامل ہیں۔ process.argv[0] 'نوڈ' ہونا، process.argv[1] اسکرپٹ کا راستہ ہونا، اور اس کے بعد کے عناصر اضافی دلائل ہیں۔

اسکرپٹ پہلے چیک کرتا ہے کہ آیا فولڈر کی دلیل فراہم کی گئی ہے، استعمال کرتے ہوئے process.argv[2]. اگر نہیں، تو یہ ایک غلطی کا پیغام لاگ کرتا ہے اور باہر نکل جاتا ہے۔ اگر دلیل موجود ہے تو، سرور کا استعمال کرتے ہوئے بنایا جاتا ہے http.createServer(). سرور درخواست کردہ یو آر ایل کو پڑھتا ہے، اسے فراہم کردہ فولڈر پاتھ کے ساتھ جوڑتا ہے۔ path.join()، اور استعمال کرتے ہوئے متعلقہ فائل کو پڑھنے کی کوشش کرتا ہے۔ fs.readFile(). اگر فائل مل جاتی ہے، تو یہ جواب کے طور پر فائل کا مواد بھیجتا ہے۔ دوسری صورت میں، یہ ایک 404 غلطی واپس کرتا ہے. یہ نقطہ نظر اس بات کو یقینی بناتا ہے کہ سرور مخصوص فولڈر سے فائلوں کو پیش کرتا ہے، یہ ظاہر کرتا ہے کہ سرور کے رویے کو متحرک طور پر اپنی مرضی کے مطابق کرنے کے لیے کمانڈ لائن دلائل کو کیسے ہینڈل کیا جائے۔

Node.js میں کمانڈ لائن دلائل تک رسائی حاصل کرنا

Node.js کے ساتھ جاوا اسکرپٹ

// 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 کے ساتھ جاوا اسکرپٹ

// 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 ڈویلپر کے لیے قابل قدر مہارت ہے جس کا مقصد قابل ترتیب اور قابل توسیع ایپلی کیشنز بنانا ہے۔