当我尝试在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)