2013-10-31 11 views
0

所以我有這樣的方法:node.js - 我們是否允許將定義爲字符串的變量傳遞給需要字符串的函數的參數?

module.exports = { 
    scanDirectory: function() { 
     walker.on('file', function(root, stat, next) { 
      files.push(stat.name); 
      console.log(files[i]); 
      next(); 
      i++; 
      //console.log('The number of items in the array is: ' + files.length); 
     }); 
     return files; 
    }, 
    readFiles: function(name) { 
     var text = fs.readFileSync('./views/index.jade', 'utf8'); 
     return text; 
    } 
}; 

第一部分掃描目錄,並在目錄返回文件。 (假設第一個函數起作用) - 它在一定程度上運行程序時的作用,但這僅僅是一個參考。

對於第二個函數,我希望它讀取文件中的文件[我]數組,而不是明確指定

> './views/index.jade' 

我在想,如果這是可能的...想澄清,而不是

> readFileSync('./views/blah.txt', 'utf8');... 

我想是這樣,...

for(i=0; i<files.length; i++) { 
    var text = fs.readFileSync(file[i], 'utf8'); 
    return text; 
} 

如果這樣的事情是可能的,請指導我如何或指向正確的方向。

大加讚賞,感謝, 布賴恩

+0

你不能通過增值稅。通過使用變量(在你的情況下,對象屬性引用'file [i]'),你可以傳遞變量引用的字符串*。功能沒有區別。 – Bergi

+0

當然,這是可能的,你的腳本不工作?除了循環中的'return'語句外,它看起來很好。你期望這個函數能處理'files',它不會做什麼? – Bergi

+0

如果我使用文件[i],如函數readFileSync(files [i],'utf8');不適合我,因爲我得到一個TypeError:路徑必須是一個字符串。 –

回答

0

是的,這是絕對有可能的。如果它不工作,你需要弄清幾件事:

file [i]的值是什麼,文件[i]有正確的權限,文件[i]是否存在,什麼是文本的價值。

在那裏的某個地方,你會看到一些不太合理的東西。

+0

嘿喬納森,感謝您的迴應..我想知道是否有可能調用文件[我] .toString()作爲參數,如果我這樣做,我怎麼實際上抓住文件[我] ..因爲數組是從另一種方法填充。 –

相關問題