我的节点脚本中包含此内容:
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放在局部变量赋值中,因为如果我没有,那么无论我试图把它放在模板的哪个地方,都不会传递任何东西。是否有其他方式可能会改变数据?
答案 0 :(得分:0)
你应该给出像这样的索引
console.log(!{data[1]});
在控制台中查看对象..
答案 1 :(得分:0)
我最近和你一样遇到过这个问题。我认为指出一些事情会很有帮助:
来自节点的mysql库已将您的数据返回到json。你使用stringify将其作为字符串返回;我相信这就是为什么你在控制台日志中获取该对象的原因。尝试只返回数据:行和通过模板中的点语法表示法访问数据。这对我有用。