【问题标题】:Jade / Expressjs: Pass objects from server to clientJade / Expressjs:将对象从服务器传递到客户端
【发布时间】:2015-06-10 08:07:26
【问题描述】:

我正在尝试将一个对象从我的端点传递给 Jade,但它一直给我 Uncaught SyntaxError: Unexpected identifier on 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});
 }

在我的玉中,我无法获得 stat 的值:

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

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    如果你想从你的表达中插入对象,最简单和最干净的方法是序列化它们。 目前,一旦插值,您正在尝试编写如下内容:

    var stats = [Object object];
    

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

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

    而且,在客户端,只需使用序列化对象;您需要使用! 而不是# 来防止jade 转义引号等字符。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 2015-05-10
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多