ノード、エクスプレス、ジェイドを使用しています。jade によって追加された 2 つの追加のオブジェクト プロパティを繰り返し処理しているようです。オブジェクトの配列である行を渡しています。
アプリ
conn.query( 'SELECT * FROM invoice ORDER BY account ASC',
function (err, rows, fields) {
console.log(rows);
res.render('index', { rows: rows, fields: fields })
});
index.jade:
table(border=1)
each row in rows
tr
each cell in row
td= cell
console.log
[ { id: 34,
account: 'abcdefg' } ]
http://localhost/これは、オブジェクトを反復処理するときに取得する追加のプロパティの 1 つです。
<td>function (field, parser, timeZone) {
switch (field.type) {
case Types.TIMESTAMP:
case Types.DATE:
case Types.DATETIME:
case Types.NEWDATE:
var dateString = parser.parseLengthCodedString();
if (dateString === null) {
return null;
}
if (timeZone != 'local') {
if (field.type === Types.DATE) {
dateString += ' 00:00:00 ' + timeZone;
} else {
dateString += timeZone;
}
}
return new Date(dateString);
case Types.TINY:
case Types.SHORT:
case Types.LONG:
case Types.INT24:
case Types.YEAR:
case Types.FLOAT:
case Types.DOUBLE:
case Types.LONGLONG:
case Types.NEWDECIMAL:
var numberString = parser.parseLengthCodedString();
return (numberString === null || (field.zeroFill && numberString[0] == "0"))
? numberString
: Number(numberString);
case Types.BIT:
return parser.parseLengthCodedBuffer();
case Types.STRING:
case Types.VAR_STRING:
case Types.TINY_BLOB:
case Types.MEDIUM_BLOB:
case Types.LONG_BLOB:
case Types.BLOB:
return (field.charsetNr === Charsets.BINARY)
? parser.parseLengthCodedBuffer()
: parser.parseLengthCodedString();
case Types.GEOMETRY:
return parser.parseGeometryValue();
default:
return parser.parseLengthCodedString();
}
}</td>