2017-12-31 168 views
-1

현재 API에서 데이터를 가져 오는 요청 모듈을 사용하여 익스프레스 앱을 구축 중입니다. 그러나 전역 변수를 만들지 않고이 데이터를 res.render 함수에 전달하려고합니다. 글로벌을 생성 할 때도 사이트의보기를 업데이트하기 전에 먼저 업데이트 된 것을 console.log에 표시합니다. 이 작업을 수행하고 res.render 함수로 전달할 데이터를 가져 오는 방법에 대해 궁금합니다. 고맙습니다.글로벌 익스프레스 요청 모듈을 사용하지 않고 변수에 액세스하기

var pounds = {}; 


exports.index = function(req, res) { 
request(options, function(err, res, body) { 
if (!err && res.statusCode === 200) { 
let info = JSON.parse(body); 
pounds = ("£"+info.GBP); 
console.log(pounds) 

}; 
}); 
res.render('pages/index', {british: pounds}); 

답변

0

그냥 내 res.render에 내부 콜백 전화를 이동하고, 지역 변수를 사용합니다. 또한 바깥 쪽 res을 안쪽 섀도우로 채우지 않도록하십시오. (내면의 이름은 response으로 변경했습니다).

exports.index = function(req, res) { 
    request(options, function(err, response, body) { 
     if (!err && response.statusCode === 200) { 
      let info = JSON.parse(body); 
      let pounds = "£" + info.GBP; 
// Local -------^ 
      res.render('pages/index', { // Moved to within 
       british: pounds   // the inner 
      });       // callback 
     }; 
    }); 
}; 
+0

@ TJ-크라우 덕분 답변 TJ를 위해, 그러나 그것은이 오류 형식 오류가 발생합니다 : res.render 함수 – zak

+0

@zak되지 않습니다 : 아, 난 당신이 외부'입술을 그림자 통지를하지 않았다 '내면의 것. 그 중 하나의 이름을 바꿉니다. 위의 이름을 내부 이름으로 변경했습니다. –

+1

@ t-j-crowder 전설 감사합니다. – zak