В следующем блоке кода я хочу, чтобы все операторы ниже readdir выполнялись перед последним оператором, чтобы в финальный консольный журнал входила вся база данных. Я попытался запустить с readdir syn c, но это тоже не работает. Это как-то связано с вложенными операторами if? Последняя строка выполняется перед любым другим кодом, и я хотел бы обойти это.
// Load node.js filesystem module
var fs = require('fs');
// Load cheerio module for HTML scraping
const cheerio = require('cheerio');
// Load find and replace module
const replace = require('replace-in-file');
// Make for loop that cycles through all files in folder
var stream = fs.createWriteStream("my_file.txt");
var database = {};
const CurrentFolder = './';
fs.readdir(CurrentFolder, (err, files) => {
files.forEach(file => {
// only modify files that contain 'page' and end in .html
if (file.includes('.html')) {
if (file.includes('page')) {
console.log(file + ' includes html');
fs.readFile(file, 'utf8', function (err, contents) {
if (err) console.log('ERROR: ' + err);
// only modify files that contain a '.page-title-lvl-cover' heading
if (contents.includes('page-title-lvl-cover')) {
var x = contents;
// console.log(x);
const $ = cheerio.load(contents)
// Extract page title (found within page-title-lvl-cover class)
const result = $('.page-title-lvl-cover').text()
database[file] = result;
console.log(database);
console.log(result)
}
});
}
}
});
});
console.log('Last ' + database)