我有一个名为row的变量,它包含以下内容:
[ RowDataPacket {
id: 15,
worknumber: '543/242',
note: '',
timestamp: 2018-12-18T12:17:15.000Z,
uploadroute: null,
isDone: 'false' },
RowDataPacket {
id: 16,
worknumber: '123/123',
note: 'retek',
timestamp: 2018-12-18T12:17:15.000Z,
uploadroute: null,
isDone: 'false' },
RowDataPacket {
id: 17,
worknumber: '5/34',
note: 'anal',
timestamp: 2018-12-18T12:17:15.000Z,
uploadroute: null,
isDone: 'false' } ]
我想把这个内容分成另外两个变量,具体取决于这个“isdone”属性。这是我打电话的密码:
router.get('/', function (req, res) {
var totalTrue;
var totalFalse;
connection.query("SELECT * FROM tickets", function (err, row, field) {
for (i = 0; i < row.length; i++) {
if (row[i].isDone == "false") {
totalFalse += row[i];
console.log(totalFalse);
} else {
totalTrue += row[i];
}
}
res.render('list', { title: 'List', layout: 'listLayout', trueRow: totalTrue, falseRow: totalFalse });
})
});
出于某种原因,“totalfalse”变量在调用后将包含以下内容:
undefined[object Object][object Object][object Object]
我不知道如何将“rowdatapocket”正确地分割成这些变量,同时保持它们的结构。请与我分享解决方案,谢谢!
1条答案
按热度按时间bnlyeluc1#
您似乎将数组和对象视为字符串。你不能像那样将一个对象连接到另一个对象并期望得到合理的输出——它只是将它们字符串化,这是无用的。
我认为您的意图是这样的—使用两个空数组,然后根据项目的isdone状态将项目从响应推送到这些数组中的一个或另一个:
p、 我不知道您打算发送给“render”方法的是每个数组中的实际数据本身,还是只是每个类别中有多少项的计数?如果您只想保持计数,那么可以省去数组,只需执行以下操作: