Node.js/jade——如何将mysql数据作为局部变量传递到内联javascript中?
我的节点脚本中包含以下内容:Node.js/jade——如何将mysql数据作为局部变量传递到内联javascript中?,javascript,mysql,node.js,express,pug,Javascript,Mysql,Node.js,Express,Pug,我的节点脚本中包含以下内容: 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) }); }); }); 如
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});
它给了我[对象,对象,对象,对象….
如果它是客户端Javascript的一部分,为什么会有不同的解释?我如何解决这个问题
我把JSON.stringify放在局部变量赋值中,因为如果我不这样做,无论我在模板中放在什么地方,都不会传递任何内容。有没有其他方法可以转换数据?你应该给出一个如下的索引
console.log(!{data[1]});
查看console中的对象。我最近和您一样遇到了这个问题。我想指出以下几点会有所帮助:
节点中的mysql库已经将您的数据返回到json中。您使用stringify将其作为字符串返回;我相信这就是为什么您要将该对象返回到控制台日志中的原因。尝试只返回数据:行,并通过模板中的点语法符号访问数据。这对我很有用