fileToQuery
возвращает void, потому что оно говорит:
function fileToQuery(filePath) {
do_something(...);
}
Это возвращаемое вами утверждение возврата не из filesToQuery
, а из анонимной функции, в которой вы его определили.
Вам нужно переписать вашу fileToQuery
функцию, чтобы получить дополнительный аргумент (возможно, resultCallback
), и вместо возврата строки sql вы делаете:
return resultCallback("INSERT IGNORE ....");
Затем вы будете вызывать ее так:
fileToQuery(file,function(query){
client.query(query, function(err, results) {
fs.unlink(file, function(err) {
sendFilesToDB(files);
});
});
});
Кстати: это называется "стиль передачи продолжения" и может быть выполнено на любом языке, который поддерживает анонимные функции.То, что вы просили, называется вызываемым продолжением , но не во многих языках они есть.Если вам интересно узнать о них, попробуйте подобрать схему.