Мне нужно написать метод в 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");
}
});
}
});
}
}