2017-12-31 218 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のために、しかし、それは、このエラー TypeError例外をスローします:res.renderが機能 – zak

+0

@zakではない:ああ、私はあなたの外側 'RESを影に気付きませんでした'内側のものと。それらの名前を変更するだけです。私は内部の名前を変更する上記を更新しました。 –

+1

@ t-j-crowder伝説ありがとうございました! – zak

関連する問題