显示数据结构而不是数据
Displaying data structure instead of data
在页面上它显示了 [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>
"[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
很好地打印内容(看看所有 format*
函数 below inspect)
在页面上它显示了 [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>
"[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
很好地打印内容(看看所有 format*
函数 below inspect)