如何使用node.js中的数据制作图表并表达?

时间:2016-03-23 06:49:17

标签: node.js charts ejs

我在node require中使用了chart.js库(" chart.js");以及ejs文件中的代码

  function abc () {
    var chart = new CanvasJS.Chart("chartContainer",
    {

      title:{
      text: "Earthquakes - per month"
      },
       data: [
      {
        type: "line",

        dataPoints: [
        { x: new Date(2012, 00, 1), y: 450 },
        { x: new Date(2012, 01, 1), y: 414 },
        { x: new Date(2012, 02, 1), y: 520 },
        { x: new Date(2012, 03, 1), y: 460 },
        { x: new Date(2012, 04, 1), y: 450 },
        { x: new Date(2012, 05, 1), y: 500 },
        { x: new Date(2012, 06, 1), y: 480 },
        { x: new Date(2012, 07, 1), y: 480 },
        { x: new Date(2012, 08, 1), y: 410 },
        { x: new Date(2012, 09, 1), y: 500 },
        { x: new Date(2012, 10, 1), y: 480 },
        { x: new Date(2012, 11, 1), y: 510 }
        ]
      }
      ]
    });

    chart.render();
  }
<%= abc(); %>
  <div id="chartContainer" style="height: 300px; width: 100%;">
  </div>

在终端上运行时显示错误。

/var/www/html/nodeproject/helloworld/node_modules/chart.js/Chart.js:668             return window.requestAnimationFrame ||                    ^ ReferenceError:未定义窗口     at /var/www/html/nodeproject/helloworld/node_modules/chart.js/Chart.js:668:11

如何在ejs格式文件中绘制图表?

1 个答案:

答案 0 :(得分:0)

您需要将结果提供给客户端,终端将无法解释生成的HTML。

您可以在Node.js中设置HttpServer并将生成的HTML作为响应传递;然后在浏览器中,您将能够看到结果。

var http = require("http");
var server = http.createServer(function(request, response){
   response.writeHead(200, {'content-type':'text/html'});
   response.end( "<insert genereated html here>" );
});
server.listen(3000); //Or any port you want