[英]Reading all files in a directory
這是我現在正在使用的代碼片段...
/*
Module: inputReader.js, directoryScanner.js (included)
Description: Basic file reader returns string of contents of a file from a set file name
Needs to be done: Add key listener to allow for a dynamic file name
*/
// Declare node.js module dependencies from API
var fs = require('fs'),
wrench = require('wrench'),
util = require('util')
// Define module to be exported as a function(s)
module.exports = {
dirRead: function() {
var rootfolder = './node_modules';
var filteredfiles = [];
var files = [];
var fileextension = '.html';
files = wrench.readdirSyncRecursive(rootfolder)
for (var i = 0; i<files.length; i++) {
if (files[i].indexOf(fileextension) != -1) {
filteredfiles.push(files[i]);
}
}
return filteredfiles;
},
fileRead: function() {
// Call synchronous fileSystem function readFileSync on file name
for(i = 0; i<filteredfiles.length; i++) {
var temp = fs.readFileSync(filteredfiles[i].toString(), 'utf8')
return temp
}
}
};
我正在導出具有2種不同功能的模塊; 第一個(readDir)讀取目錄及其文件目錄的子目錄,第二個(readFile)依賴第一個文件(從第一個函數讀取文件列表,並實際上遍歷每個文件)。
問題是,當我嘗試在第二個函數readFile中調用filteredfiles的外觀時,出現錯誤消息,表明filteredfiles是未定義的。
我不確定該如何解決,請有人幫我嗎? (我的猜測是一個范圍問題)...
res.send(reader.dirRead()) and then, res.send(reader.fileRead(reader.dirRead()))
已過濾文件在dirRead函數中本地聲明(因此,對於fileRead函數不可見)。 您必須在更高范圍內聲明它,或將其作為fileRead參數傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.