Извините за мой плохой английский, я новичок в node.js, я пытаюсь вернуть значение из своей функции. Я думаю, что должен использовать IIFE, но не могу понять, куда вставитьмой код, массив sx вне fs всегда пуст, заранее спасибо за помощь, следуйте за моим кодом
function find_wiki(stringa, callback){
var sx=[];
path='.\\uploads';
fs.readdir(path, function(err, items) {
for (let i=0; i<items.length; i++) {
let file=items[i];
let file_link=path+"\\"+items[i];
if (file.match(/\.html/)){
file=file.replace(/\.html/, '');
fs.readFile(path+"\\"+items[i], "utf8", function(err, data) {
if (err) throw err;
data=striptags(data);
if (data.indexOf(stringa)>-1){
if (data.indexOf(stringa)<=10){
sx.push("<p><a class='link_wiki' href='"+file_link+"'>"+file+"</a><br/>"+data.substring(0,data.indexOf(stringa))+" <span style='font-weight:bold'>"+stringa+"</span> "+data.substring(data.indexOf(stringa)+stringa.length+1,data.indexOf(stringa)+stringa.length+11)+"</p>");
}else {
sx.push("<p><a class='link_wiki' href='"+file_link+"'>"+file+"</a><br/>"+data.substring(data.indexOf(stringa)-10,data.indexOf(stringa))+" <span style='font-weight:bold'>"+stringa+"</span> "+data.substring(data.indexOf(stringa)+stringa.length+1,data.indexOf(stringa)+stringa.length+11)+"</p>");
}
}
});
}
}
});
if (sx.length==0)
callback(null, "<p>Nessun dato trovato che soddisfi la ricerca</p>");
else
{
var t='';
for (x in sx){
t+=sx[x]();
}
callback(null, t);
}
}