我需要在Node中编写一个方法,该方法将在各自目录中选择文件并执行一些处理,获取结果并将其传递到另一个api中,然后将最终结果取回。我的目录结构有点像
我正在做的是获取目录列表并存储,然后一个接一个地获取特定目录中的所有文件,然后传递给processFile函数,在该函数中我将对其进行预处理,最后传递结果到外部api并获得最终结果。然后对另一个文件执行相同的过程,但是在这些异步调用和回调方法中我迷路了。有什么办法正确处理它们?
--------------------------------------
| Directory | File
--------------------------------------
| Dir1 | Dir1.txt
| Dir2 | Dir21.txt, Dir22.txt
| Dir3 | Dir3.txt
getpath = root
directories = getDirectories(getPath)
function getDirectories(path) {
return fs.readdirSync(path).filter(function (file) {
return fs.statSync(path + '/' + file).isDirectory();
});
}
for (var dirs = 0; dirs < directories.length; dirs++) {
documentPath = getPath + directories[dirs];
fs.readdirSync(documentPath).forEach(file => {
console.log(file);
filesList.push(file)
return filesList
});
for (var fileToSend = 0; fileToSend < filesList.length; fileToSend++) {
var fileName = filesList[fileToSend]
newFilePath = documentPath + '/' + fileName
myFile.processFile(newFilePath, function (result, error) {
if (error) {
console.log(error)
} else {
var options = {
url: url,
headers: { 'Content-Type': 'text/plain' },
body: result
};
var req = request.post(options, function (error,
_response, body) {
if (error) {
console.error(error);
}
else {
console.log("Received response");
}
});
}
});
}
}