2017-01-03 21 views
0

私はPugでExpressを使っていくつかのことを練習しています。私はウェブサイトへのリクエストを行い、いくつかの情報を得ました。その情報は配列に入っていますが、その情報は変更可能なので、私はPugを使ってそれを繰り返し処理しようとしていますが、pugファイルの外でその変数を取得するにはどうすればよいか分かりません。変数を正しい方法で宣言していないことを示すエラーが発生します。 "...は定義されていません"などのエラーがあります。私がエクスプレスファイルで宣言しようとすると、どちらも動作しませんので、Pugファイルにアクセスできるように明示する必要があるかどうかわかりませんか何か。私はこれを行う方法については分かりません。Pugファイルのajaxリクエストから変数にアクセスする方法

より多くの情報が必要な場合はAjaxリクエストとJSファイル内の配列は、エクスプレス

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 

/* GET home page. */ 
router.get("/", (req, res) => { 
    res.render('index'); 
}); 

router.post("/", (req, res) => { 
    res.send(req.body) 
}) 

module.exports = router; 

statArr

の名前をしてください持っている

div#information 
     table 
      tr 
       th Health 
       th Defense 
       th Speed 

      tr 
       each val in // (What goes here?) 
        td= val 

パグファイルお知らせ下さい。

+0

クライアントでajaxを使用してリクエストを行っている場合は、要求が完了したら手動でdomに入力する必要があります。サーバ上でリクエストを行う場合、配列を 'res.render( 'index'、{statArr})'のテンプレート名の後に渡して 'pug'テンプレートに渡すことができます。また、 'res.locals'をテンプレートに公開することで、そこにも設定できるようになり、あなたのpugテンプレートに渡されます。 –

答えて

0

サーバーの例では、このようなものです。

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 

router.get("/", (req, res) => { 
    request('yourURLWhereYouGetData', function (error, res, body) { 
     if (!error && res.statusCode == 200) { 

     var statArr = body.statArr; 

     res.render('index', { statArr }); 
     } 
    }) 
}); 

router.post("/", (req, res) => { 
    res.send(req.body) 
}) 

module.exports = router; 
+0

ありがとうございます、私はサーバー側の要求に行くと思います。私はそれが私のニーズをこの状況でより良く適合させると思う。 – fuhrerguxez

関連する問題