Node.js]1 ile yazılmış bir web sunucum var ve belirli bir klasörle başlatmak istiyorum. JavaScript'te argümanlara nasıl erişeceğimden emin değilim. Node'u şu şekilde çalıştırıyorum:
$ node server.js folder
burada server.js
benim sunucu kodum. Node.js yardımı bunun mümkün olduğunu söylüyor:
$ node -h
Usage: node [options] script.js [arguments]
JavaScript'te bu argümanlara nasıl erişebilirim? Bir şekilde bu bilgiyi internette bulamadım.
Argümanlar process.argv
içinde saklanır
İşte komut satırı argümanlarının işlenmesine ilişkin node dokümanları:
process.argv
komut satırı argümanlarını içeren bir dizidir. İlk eleman 'node', ikinci eleman ise JavaScript dosyasının adı olacaktır. Sonraki elemanlar herhangi bir ek komut satırı argümanı olacaktır.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Bu oluşturacaktır:
$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four
Argümanları normal bir javascript fonksiyonunun alacağı gibi normalleştirmek için bunu node.js kabuk komut dosyalarımda yapıyorum:
var args = process.argv.slice(2);
İlk arg'ın genellikle nodejs'in yolu olduğunu ve ikinci arg'ın çalıştırdığınız betiğin konumu olduğunu unutmayın.
Optimist kütüphanesi](https://github.com/substack/node-optimist)'ne göz atın, komut satırı seçeneklerini elle ayrıştırmaktan çok daha iyidir.
Güncelleme
Optimist kullanımdan kaldırılmıştır. Optimist'in aktif bir çatalı olan yargs'u deneyin.