在express / node中使用发布的表单数据时遇到问题

目前这是我所拥有的:

这是我的Post方法

app.post('/barchartentry', function(req, res){ res.render('barchart', { title: 'EZgraph: Bar Chart', barValues: req.body.myInputs, labelValues: req.body.myLabel}); }); 

这是我在翡翠的看法:

 extends layout block appendHeader link(rel='stylesheet', href='stylesheets/barchart.css') block content include navbar canvas(id='canvas' width="800" height="600") include copyright block appendScripts script(src='js/barchart.js') 

在这个视图中的JS文件,我需要访问我在这个文件中发送的数据

 $(document).ready(function() { var values = barValues; var labels = labelValues; console.dir(barValues); var canvas = document.getElementById("canvas").getContext("2d"); canvas.fillStyle="#BFBFBF"; canvas.fillRect(0,0,800,600); canvas.fillStyle="#000000"; canvas.beginPath(); canvas.moveTo(40, 40); canvas.lineTo(40, 560); canvas.lineTo(760, 560); canvas.stroke(); }); 

使用input的数据,我将绘制一个具有给定数字/标签的条形图。 目前我无法访问这些数据,即使在提交给页面之后。 我不确定我是否应该用它来做其他的事情,使它可以使用该脚本?

我依稀记得试图用价值取代玉书的问题。 此外,它感觉有点臭,dynamic生成的JavaScript。 所以我将数据绑定到DOM并以编程方式访问它:

 block content include navbar canvas( id='canvas', width="800", height="600", data-barValues=JSON.stringify(locals.barValues), data-labelValues=JSON.stringify(locals.labelValues) ) include copyright 

然后在js中:

 $(document).ready(function() { var values = $('#canvas').attr('data-barValues').val(); values = JSON.parse(values); var labels = $('#canvas').attr('data-labelValues').val(); labels = JSON.parse(labels); ... }); 

尽pipe你将barValueslabelValues的值传递给你的Jade视图,但是你并没有把它们的值渲染到HTML中,所以你的JS脚本不能引用它

在玉石里,做一些类似的事情

 script. var values = barValues; var labels = labelValues;