2017-08-08 19 views
0

我在rsync.js如何爲函數使用輸入配置文件?

rsync.js

var onClick = function(){ 
     exec('rsync -avz -e "ssh -o StrictHostKeyChecking=no -o\ UserKnownHostsFile = /dev/null" --progress' + src_dir + to_dir,\ 
function(error,stdout,stderr){ 
console.log('stdout:',stdout)} )  
} 

讓我們假設我要運行上面的代碼3名不同的目錄,其存在於system.So功能,我只需要更改src_dirto_dir即可爲功能onClick提供輸入。

爲了做到這一點,我想在JSON格式的輸入配置文件,這樣我可以要求在rsync.js並只給出輸入,src_dirto_dir的功能和它爲他們中的3人工作。

Question1:如何遍歷config.js文件中的數組列表?

Question2:如何給函數onClick輸入? 例如:var onClick = function(src_dir= "", to_dir= ""){}

Try1: 我已經列出了源和目標的數組列表。 現在我想迭代它,但無法做到這一點。

config.js

module.exports = { 

    src: [ 
     { src_dir: '/path/to/source/dir/', to_dir : '/path/to/remote/dir'}, 
      //rest array elements. 
     ] 
    } 
+0

您可以先閱讀的src和目錄列表,並有它的陣列。然後迭代使用for循環,您可以運行列表結果並按預期獲得它。 –

+0

是的,我已經理解但無法實現它。 – Aditya

+0

@ArunkumarG我已經做了一個數組列表。 – Aditya

回答

1
var onClick = function(src_dir, to_dir){ // expect 2 paramteres for the onClick function (src,to) 
    exec('rsync -avz -e "ssh -o StrictHostKeyChecking=no -o\ UserKnownHostsFile = /dev/null" --progress' + src_dir + to_dir, function(error,stdout,stderr){ 
     console.log('stdout:',stdout) 
    })  
} 

// Load config 
var config = require('config.js'); 

// Iterate through all elements in config.src 
for(var i=0;i<config.src.length;i++){ 
    onClick(config.src[i].src_dir,config.src[i].to_dir) 
} 
+0

它顯示onClick不是一個函數。 – Aditya

相關問題