У меня есть следующий запрос Получить в сервере ...Node всегда возвращает пустой массив
var imageFiles = [];
var dir = 'public/img/';
fs.readdir(dir, function(err, files){
if (err) return console.error(err);
files.forEach(function(file) {
file = dir + file;
imageFiles.push(file)
});
});
res.send(imageFiles);
res.end();
imageFiles всегда возвращается к angular
как empty array
. Если я console.log(imageFiles)
перед ответом, он также пуст. Однако, если я console.log(files)
, они все там. Что я делаю не так!?
Вы отправляете ответ до того, как каталог был пройден. readdir ** асинхронно **. Отправьте ответ в обратном вызове. –
Если вы собираетесь использовать NodeJS, вам действительно нужно потратить некоторое время на изучение асинхронного программирования. –
Спасибо @FelixKling. – aedballs