显示数据结构而不是数据

code_legend

在页面上,它显示的行,[object Object]但我知道其中有价值,因为在控制台中它输出正确的数据。尝试在页面上显示时,它仅输出没有数据的[object Object]。如果我执行console.log,那么它将显示正确的数据。HTML页面似乎呈现了行数据结构,而不是数据本身。

以下是路线页面

var express = require('express');
var router = express.Router();
var mysql = require('mysql');


/* GET home page */
router.get('/', function(req, res, next) {
  var connection = mysql.createConnection({
    host : '',
    user : '',
    password : '',
    database : ''
  });

  connection.connect();

  connection.query('SELECT hashtag from recipients', function(err, rows, fields) {
    if (!err) {
      console.log(rows);
      //send rows to template engine to render HTML.
      res.render('mysql', {
        rows: rows,
        title:''
      });
    } else {
      console.log('Error while performing Query.');
    }
  });
  connection.end();
});

// Important
module.exports = router;

以下是查看页面

<html>

<head>
  <title> <%= title %></title>
</head>

<body>
  <table>
    <tr>some heading</tr>
    <% for(var i=0; i< rows.length; i++) { %>
      <tr>
        <td>
          <%= rows[i] %>
        </td>
      </tr>
      <% } %>

  </table>
</body>

</html>
安德烈·西多罗夫(Andrey Sidorov)

“ [object Object]”是将您的对象转换为字符串的结果。转换很可能在模板内部自动执行。只需更改从对象到对象字符串属性插入数据的部分。

例如

  res.render('mysql', {
    rows: rows,
    fields: fields,
    title:''
  });

并查看:

<html>

<head>
  <title> <%= title %></title>
</head>

<body>
  <table>
    <tr>some heading</tr>
    <% for(var i=0; i< rows.length; i++) { %>
      <tr>
        <% for(var f=0; f< fields.length; f++) { %>
        <td>
          <%= rows[i][fields[f].name] %>
        </td>
        <% } %>
      </tr>
      <% } %>

  </table>
</body>

</html>

原因console.log是打印对象的内容是因为它查看参数的类型,并通过各种巧妙的技巧很好地通过打印内容util.inspect(请查看inspect下面的所有format*函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章