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