首页 > 解决方案 > 如何在脚本标签内使用ejs

问题描述

我在 Node.js/Express、ejs 和 Postgresql 中工作。

我正在尝试插入<script></script>从请求中获得的标签 EJS 代码。

尝试这样做,但它不起作用:

<% avg_t.rows.forEach(function(avg){%>
<script type="text/javascript">
var first = JSON.stringify('<%= avg.mark %>');
console.log(first);
</script>
<%} ) %>

我执行请求的 Node.js 代码:

const graphic1 = (req,res)=> {

    const db = new pg.Pool(te_role.client)

    db.connect(function(err, client, done){
        console.log("")
        if(err){
            return console.error('canceled')
        }

        client.query(teacher_role.show_avg,[log2,req.body.disce,req.body.numb,req.body.lett], function(err, result){
            return_data.avg_t =result 
           if (err){
           res.end()
           return console.error("canceled")
           }
           done()
        res.render('inside',{avg_t:return_data.avg_t})

})
})
}
app.get('/inside',urlencodedParser,db_te.get_graphic1)

当然还有我尝试的完整 EJS 代码:

<% avg_t.rows.forEach(function(avg){%>

  <script type="text/javascript">
    var first = JSON.stringify('<%= avg.mark %>');
    console.log(first);
    google.charts.load('current', {
      'packages': ['corechart']
    });
    google.charts.setOnLoadCallback(drawChart);

    function drawChart() {
      var data = new google.visualization.DataTable();
      data.addColumn('string', 'Topping');
      data.addColumn('number', 'Slices');
      data.addRows([
        ['Mushrooms', first],
        ['Onions', 1],
      ]);
      var barchart_options = {
        title: 'Barchart: How Much Pizza I Ate Last 
        Night ',width:400,height:300,legend: '
        none '};
        var barchart = new google.visualization.BarChart(document.getElementById('barchart_div'));
        barchart.draw(data, barchart_options);
      }
  </script>

<%} ) %>

标签: javascriptsqlnode.jsexpressejs

解决方案


推荐阅读