2017-11-05 11 views
0

私のpugテンプレートでサーバーからデータを読み込もうとしています。Pug - pugスクリプトでサーバーからデータにアクセスする(type = 'text/javascript')

私のルートは、次のようになります。

app.get('/serverdata', async(req, res) => { 

    const chartData = [] 
    for (const i = 0; i < 7; i++) { 
    chartData.push(Math.random() * 50) 
    } 

    const result = JSON.stringify(chartData) 

    res.render('serverdata', { 
    result, 
    }) 
}) 

私のパグテンプレートには、次のようになります。

serverdata:13 Uncaught ReferenceError: result is not defined 
    at serverdata:13 

任意の提案:

.row 
    .col-md-12 
     .card 
     .embed-responsive.embed-responsive-16by9 
      canvas#myNewChart(style='display: block; width: 1000px; height: 500px;', width='1000', height='500')  

block specific-js 
    script(type='text/javascript', src="js/plugins/chart.js") 
    script(type='text/javascript'). 
    var data = { 
     labels: ["January", "February", "March", "April", "May", "June", "July"], 
     datasets: [ 
     { 
      label: "My First dataset", 
      fillColor: "rgba(220,220,220,0.2)", 
      strokeColor: "rgba(220,220,220,1)", 
      pointColor: "rgba(220,220,220,1)", 
      pointStrokeColor: "#fff", 
      pointHighlightFill: "#fff", 
      pointHighlightStroke: "rgba(220,220,220,1)", 
      data: result //here I am getting the error 
     } 
     ] 
    }; 

    var ctx = document.getElementById("myChart").getContext("2d"); 
    var myNewChart = new Chart(ctx).Line(data); 

私のエラーは、私のビューファイル内にあります私のpugファイルのscript.タグにサーバーデータをロードする方法は?

返信いただきありがとうございます。

+1

'res.render'この' res.render( 'serverdata'、{結果:結果})のようになります 'と私あなたのpugファイルで '#{result}'を使うべきだと私は思っています。 – Molda

答えて

1

私はあなたが異なる文脈を混ぜていると思います。エラーを返す行はブラウザで実行され、そのコンテキストではresultという名前の変数はありません。

サーバー上にエンドポイント/serverdataがあるため、そのURLからデータをロードして解析する必要があります。詳細は、使用しているJavaScriptライブラリのどのような種類に依存するが、jQuery getJSONと:

$.getJSON("/serverdata", function(data) { 
    /* Update your chart by using 'data' */ 
}); 
関連する問題