Node.js / jade – 我如何将mysql数据作为本地variables传递给内联javascript?
我的节点脚本有这个在它:
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放在局部variables赋值中,因为如果我不这样做,无论我在哪个模板中试图放置它,都不会传递。 有没有另外一种方法可以改变数据呢?
你应该给一个索引像console.log(!{data[1]});
在控制台中查看对象
我最近遇到像你这样的问题。 我认为指出一些事情会有所帮助:
来自节点的mysql库已经将你的数据返回给json。 你使用stringify返回它作为一个string; 我相信这就是为什么你把这个对象回到控制台日志中。 尝试只返回数据:行和通过您的模板中的点语法符号访问数据。 这是为我工作。