2016-02-08 1 views
1

У меня есть этот скрипт:Присоединение контура массивов в Node.js Glob результаты

var glob = require('glob'); 
glob('*.jpg', { cwd: 'public/portfolio/weddings/', sort: true }, function (err, files) { 
    var globResults = files; 
    globResults.forEach(function(entry) { 
    var results = '\'' + entry + '\''; 
    console.log(results.join(',')); 
    }); 
}) 

join(',') не работает, в результате чего сценарий на неудачу. Фактический выход без него:

'image-1.jpg' 
'image-10.jpg' 
'image-11.jpg' 
'image-12.jpg' 
'image-13.jpg' 
'image-14.jpg' 
'image-15.jpg' 
'image-16.jpg' 
'image-17.jpg' 
'image-18.jpg' 
'image-19.jpg' 

Ожидаемый результат:

'image-1.jpg', 
'image-10.jpg', 
'image-11.jpg', 
'image-12.jpg', 
'image-13.jpg', 
'image-14.jpg', 
'image-15.jpg', 
'image-16.jpg', 
'image-17.jpg', 
'image-18.jpg', 
'image-19.jpg' 

Позже я хочу назвать этот вывод в цикле массива.

ответ

1
var glob = require('glob'); 
glob('*.jpg', { cwd: 'public/portfolio/weddings/', sort: true }, function (err, files) { 
    var globResults = files, 
     results = []; 
    globResults.forEach(function(entry) { 
    results.push('\'' + entry + '\''); 
    }); 
    console.log(results.join(',')); 
}) 

Это вы, тем что искали? Журнал не должен быть затронут из-за обратного вызова forEach, потому что это блокирующая циклическая структура IIRC. Если это вызывает проблемы, вам, возможно, придется использовать регулярный цикл.

Во-вторых, почему вы не можете просто присоединиться к файлам напрямую? например

console.log("'"+files.join("', '")+"'"); 
+0

Спасибо! Работает отлично! Я выбрал ваш последний метод, присоединившись к ним напрямую. Я попытался с первой попытки присоединиться к ним напрямую, но, вероятно, я что-то испортил, и это не сработало, затем я реализовал forEach. Но, как вы сказали, это очень простое решение. – Lanti