当我尝试在Jade中显示SQL查询结果时获取

我开始在Node.js,我完全困惑,为什么我不能得到我的SQL查询的结果在页面上呈现。

connection.query('SELECT * FROM testTable', function selectCb(err, rows, fields) { if (err) { throw err; } for (var i in rows) { console.log(rows[i]); } res.render('showResults.jade', { results: rows }); }); 

结果在控制台中完美显示,但是当我尝试用Jade渲染它们时,我得到了许多项目符号(等于表中的条目数),但是每一个都跟着[object,Object]。 这是我的Jade文件:

 h1 SQL Results are as follows: ul each item, i in results li= item 

是否有额外的步骤或我需要得到的结果正确显示?

你看到的输出是因为Jade只是在expression式的结果上调用.toString() 。 而且, Object就像item , 这是默认的结果 :

 > {}.toString() '[object Object]' 

为了得到更有用的东西,你必须指定格式:

 li #{item.prop1} (#{item.prop2}) 

对于JSON:

 li= JSON.stringify(item) 

如果你想用console.log()看看你所看到的格式,你可以将它使用的函数util.inspect()作为一个视图助手公开:

 // Express 3 app.locals.inspect = require('util').inspect; 
 li= inspect(item)