4

我刚开始使用 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]。这是我的玉文件:

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

是否有额外的步骤或我需要让结果正确显示的东西?

4

1 回答 1

8

您看到的输出是因为 Jade 只是调用.toString()表达式的结果。而且,对于Objects like 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)
于 2013-02-14T18:50:32.143 回答