【问题标题】:Node.js/jade -- How can I pass mysql data as a local variable into inline javascript?Node.js/jade -- 如何将 mysql 数据作为局部变量传递到内联 javascript?
【发布时间】:2015-11-24 11:44:51
【问题描述】:

我的节点脚本中有这个:

var connection = mysql.createConnection(...);

connection.connect();

connection.query(/*sql query*/, function(err, rows, fields){
  app.get('/', function(req, res){
    res.render('index', { data: JSON.stringify(rows) });
  });
});

如果我在我的 Jade 模板中这样做:

body
  p !{data}

它完全按照您的预期显示来自 MySql 查询的数据。但如果我这样做:

body
  script(type='text/javascript').
    console.log(!{data});

它给了我[Object, Object, Object, Object....

如果它是客户端 Javascript 的一部分,为什么会有不同的解释?我该如何解决这个问题?

我将 JSON.stringify 放在局部变量赋值中,因为如果我不这样做,无论我尝试将它放在模板中的哪个位置,都不会传递任何内容。我应该有另一种方式来转换数据吗?

【问题讨论】:

    标签: javascript mysql node.js express pug


    【解决方案1】:

    你应该给出一个类似的索引 console.log(!{data[1]}); 在控制台中查看对象..

    【讨论】:

      【解决方案2】:

      我最近和你一样遇到了这个问题。我认为指出几点会有所帮助:

      node 的 mysql 库已经将您的数据返回到 json 中。您使用 stringify 将其作为字符串返回;我相信这就是为什么您要将该对象返回到控制台日志中的原因。尝试仅返回 data:rows 并通过模板中的点语法符号访问数据。这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-23
        相关资源
        最近更新 更多