Jade / Expressjs:将对象从服务器传递到客户端

我试图从我的端点传递一个对象到翡翠,但它不断给我未捕获的SyntaxError:意外的Stat的标识符! 有人能帮助我吗。 这是我的代码:

app.get('/stats', function (req, res, next) { var stats ={ 'm0t20': {a:0,b:0,c:0,d:0}, 'm20t30': {a:0,b:0,c:0,d:0}, }; res.render('chart',{'stat':stats}); } 

在我的玉石,我不能得到统计的价值:

  script(type='text/javascript'). var stats= #{stat}; 

如果你想插入对象expression,最简单和最干净的方法是序列化它们。 目前,一旦插入,你试图写这样的东西:

 var stats = [Object object]; 

这不是一个有效的JavaScript语法:/所以,在服务器端,序列化你的对象:

  app.get(..., function (req, res) { var stats = { ... }; res.render('chart', { stats: JSON.stringify(stats) }); }); 

而在客户端,只需使用序列化的对象; 你需要使用! 而不是#来防止玉石逃离字符如引号。

 script. var stats = !{stats}; alert(stats.myProp); 

请记住,您正在向您的页面注入直接的JavaScript代码。
不要这样做,如果序列化的对象可以包含任何用户input