Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js/jade——如何将mysql数据作为局部变量传递到内联javascript中?_Javascript_Mysql_Node.js_Express_Pug - Fatal编程技术网

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将其作为字符串返回;我相信这就是为什么您要将该对象返回到控制台日志中的原因。尝试只返回数据:行,并通过模板中的点语法符号访问数据。这对我很有用