2014-07-16 3 views
0

node.js express를 사용하여 여러 URL/페이지를 생성하려고했습니다. 하나의 JSON 파일에 여러 개의 URL (현재 숫자가 변경 될 수 있음)이 저장되어 있고 각 URL에 대한 정보가 포함 된 JSON 파일이 10 개 있습니다.node.js를 사용하여 여러 JSON 파일에서 URL 및 페이지 컨텐츠를 동적으로 생성합니다.

현재 request-json을 사용하여 로컬 서버에서 JSON 파일을 가져옵니다. 하지만, 내 코드는 나만 루프

client.get("url1", function(error, response, body){     
    for (var i=0; i<10; i++){ 
     var urlName = body.row[i]; 
     client.get("url2" + urlName, function(error, response, body) { 
      app.get('/'+ urlName, function (req, res){ 
       res.send(body);  
      }) 
     }) 
    } 
}); 
+0

'for' 루프에'async' 호출이 있기 때문입니다. – Mritunjay

+0

답변을 추가했습니다. 문제가 될 수 있습니다. – Mritunjay

답변

0

내가 for 루프에서 async 전화가 있기 때문에 그것은 생각에 맨 마지막 URL 및 컨텐츠를 만들 수 있습니다. async 함수 app.get에 현재 값 i 또는 urlName을 사용하고 있습니다.

client.get이 완료되면 app.get이 호출됩니다.

그러면 for 루프가 완료 될 것이므로 마지막 줄인 i/urlName의 최신 값 i=10이 호출됩니다. 그래서 그것은 그렇게됩니다.

이 시도 : - 기본적으로 여기에 내가 그래서 i의 현재 값에 대한 작업을 수행해야 i의 가치와 기능을 결합했습니다 뭐하는 거지

var performCurrentOperation = function(i,body){ 
    var urlName = body.row[i]; 
    client.get("url2" + urlName, function(error, response, body) { 
     app.get('/'+ urlName, function (req, res){ 
      res.send(body);  
     }); 
    }); 
} 

client.get("url1", function(error, response, body){     
    for (var i=0; i<10; i++){ 
     performCurrentOperation(i,body); 
    } 
}); 

.

관련 문제