2014-03-06 50 views
1

我完全是新的節點,我一直在閱讀網站的過程api。不過,我認爲我沒有上下文,所以在獲得更好的理解方面有所幫助。如何將參數傳遞到node.js javascript文件中?

我想傳遞一個參數到我的節點腳本中,所以從命令行它看起來像節點connecttoerver.js -ip 192.10.10.1。我有這樣的作品下的代碼,但即使閱讀文檔,我不知道這裏發生了什麼。

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

回答

1

你的實例是來自node docs,所以process.argv(argv的代表參數矢量)是

包含命令行參數的數組。第一個元素將是'node',第二個元素將是JavaScript文件的名稱。接下來的元素將是任何額外的命令行參數。

所以輸出爲connecttoerver.js -ip 192.10.10.1將是:

0: node 
1: path/to/connecttoerver.js 
2: --=ip 
3: 192.10.10.1 

process.argv只是傳遞給腳本命令行參數的陣列。但第一個是node,第二個是文件路徑,其他是傳遞給由空白分隔的腳本的參數。

你真正想要的是一個庫,它可以解析這些參數,並以方便的方式將它傳遞給你。例如與optimist你將得到:

var argv = require('optimist').argv; 

if (argv.rif - 5 * argv.xup > 7.138) { 
    console.log('Test one'); 
} else { 
    console.log('Test two'); 
} 

這樣稱呼它

node xup.js --rif=55 --xup=9.52 
    Test one 

node xup.js --rif 12 --xup 8.1 
    Test two 

這些庫包括參數解析,默認值,使得所需的一些變種等

+0

搜索我終於找到了後這是http://docs.nodejitsu.com/articles/command-line/how-to-parse-command-line-arguments – justZito

+0

是的,解析你自己也可以。但是對於高級cli選項的用法,你必須自己寫很多代碼。在他們的文章中,他們也建議使用'optimist'。 –

相關問題