اذهب إلى المحتوى

السؤال

نشر

لدي خادم ويب node.js وأرغب عند تشغيله بتمرير قيم معيّنة كمتغيرات ومعالجتها ضمن كود الجافاسكريبت، حالياً أقوم بتشغيل الخادم من خلال الأمر التالي:

node server.js

ومن خلال التوثيق وجدت أنه يمكنني تمرير قيم ل options وأيضاً لمتغيرات arguments فيصبح الأمر بالشكل التالي:

node server.js (arguments)

ولكن كيف يمكنني الوصول لهذه المتغيّرات التي سأقوم بتمريرها هنا ضمن ملف server.js؟ وماهي الطريقة لوضع قيم arguments ضمن هذا الأمر؟

Recommended Posts

  • 0
نشر

عند تشغيل مخدم node كما هو الحال لبقية البرامج يتم تمرير البيانات للعملية process المسؤولة عن تشغيل البرنامج.

يتم تخزين البيانات في مصفوفة ضمن:

process.argv

حيث عند كتابة الأمر البيانات الممرة تكون على شكل مصفوفة:

$ node argv.js one two three four five

=>>>


[ 'node',
  '/home/avian/argvdemo/argv.js',
  'one',
  'two',
  'three',
  'four',
  'five' ]

للحفاظ على المتغيرات فقط يمكن تنفيذ slice:

var myArgs = process.argv.slice(2);
console.log('myArgs: ', myArgs);

==>>

myArgs:  [ 'one', 'two', 'three', 'four', 'five' ]

بعدها يمكن الوصول للوسيط الأول ب 

myArgs[0]

myArgs[1] // الثاني

 

  • 0
نشر

يمكنك إستعمال مكتبة minimist لتمرير قيم معيّنة كمتغيرات ومعالجتها ضمن كود الجافاسكريبت،

فيما يلي مثال على كيفية استخدامه مأخوذ من التوثيق الرسمي للمكتبة:

//  parse.js  ملف 
var argv = require('minimist')(process.argv.slice(2));
console.dir(argv);

عند ننفيذ الأمر

$ node example/parse.js -a beep -b boop

تظهر النتائج كالتالي:

{ _: [], a: 'beep', b: 'boop' }

 

  • 0
نشر

الطريقة النموذجية بدون إستخدام مكتبات خارجية

المتغيرات يتم تخزينها في المتغير process.argv ، وهيا عبارة عن مصفوفة تحتوي المتغيرات arguments ولكن العنصر الأول هو سيكون node والعنصر الثاني سيكون اسم ملف JavaScript وبقية العناصر ستكون أي متغيرات arguments إضافية ، يمكنك الحصول عليهن كالآتي

process.argv.forEach(function (val, index, array) {
  console.log(index + ': ' + val);
});

أو يمكنك إستخدام أحد هذه الحزم

  • Minimist للحصول على الحد الدنى من قراءة المتغيرات arguments
  • Commander.js وهذه الوحدة الأكثر إعتماداً لقراءة المتغيرات arguments
  • meow بديل خفيف ل Commander.js
  • Yargs قارئ المتغيرات arguments أكثر تعقيداً 
  • Vorpal.js تطبيق موجه أوامر تفاعلي مع قراءة المتغيرات arguments

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...