-1
URL을 가져 오려고 시도하면서 일련의 URL을 반복하지만 목록의 마지막 URL에서만 작동합니다. "NOT WRITING YET"console.log는 예상대로 urls 배열의 모든 항목을 실행하지만 이후 console.logs는 마지막 이벤트 만 실행합니다. 그들은 반환 "..... res.on ('오류'"모든 유효한 URL 및 있습니다 아무것도.Node.js 루프의 마지막 항목 만 가져 오는 루프
어떤 도움이 크게 감사합니다!
for (var z in urls) {
var getURL = urls[z];
var copyURL = 'copies/'+getURL;
if (copyURL.indexOf('/') >= 0) {
var copyURLArr = copyURL.split('/');
} else {
var copyURLArr = [copyURL];
}
var copyFile = copyURLArr.pop();
var runningDirs = '';
for (var i in copyURLArr) {
if (runningDirs.length > 0) runningDirs += '/';
runningDirs += copyURLArr[i];
if (!require('fs').existsSync(runningDirs)) {
exec('mkdir '+runningDirs);
}
}
console.log('NOT WRITING YET: '+urlPrefix+getURL);
require('http').get(urlPrefix+getURL, function(res) {
console.log(urlPrefix+getURL);
res.on('data', function(data) {
console.log(copyURL);
require('fs').createWriteStream(copyURL, {flags:'a+'}).write(data);
});
});
}
고마워요! 그래, 어리석은 실수 였어.하지만 자바 스크립트로 그다지 많이하지 않았어. 그걸 잊어 버렸어. 그래도 내가하는 방식대로 작동하는 이유에 대해서는 아직 명확하지 않습니다. 나는 왜 내 console.log가 나오는지 이해하지만, http.get에 전달되는 매개 변수가 콜백의 일부가 아니며 그 반복에 존재하는 값을 전달해야하므로 좋지 않은가? –
, 그러나 당신이 쓰는 copyURL은 올바른 것이 아닙니다 – nomier
맞습니다. 그래, 오늘 완전히 피곤하지 않은 것은 상식이야 ... 미안해! 누군가 내가 잠 들어있을 때 코드를 작성하지 말라고 말해야합니다. –