我正在尝试从我的哈巴狗模板中的服务器加载数据。

我的路线如下所示:

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,
  })
})


我的哈巴狗模板如下所示:

  .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);


我的错误在我的视图文件中:

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


有什么建议如何在我的哈巴狗文件的script.标记中加载服务器数据?

感谢您的答复!

最佳答案

我认为您在混合不同的环境。在浏览器中执行向您显示错误的行,并且在这种情况下,没有名为result的变量。

由于服务器上已有端点/serverdata,因此只需加载和解析该URL中的数据即可。详细信息取决于您使用的JavaScript库类型,但是使用jQuery getJSON

$.getJSON("/serverdata", function(data) {
    /* Update your chart by using 'data' */
});

关于javascript - Pug-在Pug脚本中从服务器访问数据(type ='text/javascript'),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47119784/

10-12 00:07
查看更多