Node.js/jade -- 如何将 mysql 数据作为局部变量传递给内联 javascript?
Node.js/jade -- How can I pass mysql data as a local variable into inline javascript?
我的 Node 脚本中有这个:
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 放在局部变量赋值中,因为如果我不这样做,无论我试图将它放在模板中的哪个位置,都不会传递任何内容。有没有其他方法可以让我转换数据?
你应该给出一个索引,比如
console.log(!{data[1]});
在控制台中查看对象..
我最近 运行 和你一样关注这个问题。我认为指出几点会有所帮助:
来自节点的 mysql 库已经 returns 您的数据进入 json。你使用 stringify returns 它作为一个字符串;我相信这就是为什么您将该对象返回到控制台日志中的原因。尝试只返回 data:rows 并通过模板中的点语法符号访问数据。这对我有用。
我的 Node 脚本中有这个:
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 放在局部变量赋值中,因为如果我不这样做,无论我试图将它放在模板中的哪个位置,都不会传递任何内容。有没有其他方法可以让我转换数据?
你应该给出一个索引,比如
console.log(!{data[1]});
在控制台中查看对象..
我最近 运行 和你一样关注这个问题。我认为指出几点会有所帮助:
来自节点的 mysql 库已经 returns 您的数据进入 json。你使用 stringify returns 它作为一个字符串;我相信这就是为什么您将该对象返回到控制台日志中的原因。尝试只返回 data:rows 并通过模板中的点语法符号访问数据。这对我有用。