我正在尝试将数据库数据写入JSON。它在我不使用循环时有效。
然后我得到: TypeError:第一个参数必须是字符串或缓冲区
我正在使用mysql npm包。
con.query('SELECT * FROM mydb.orders_view;', function(err, rows, fields) {
if (err) {
res.status(500).json({ result: 'Error' })
}
for (var i = 0; i < rows.length; i++) {
res.write(
{
time: date,
Order: [{
OrderedBy: rows[i]['OrderedBy']
}]
}
);
}
res.end();
});
});
答案 0 :(得分:4)
您正在使用对象调用write
。根据文档,它必须是字符串或缓冲区:
chunk可以是字符串或缓冲区。如果chunk是一个字符串,则第二个参数指定如何将其编码为字节流。默认情况下,编码为'utf8'。当刷新这一块数据时,将调用最后一个参数回调。
附注:您没有正确处理错误情况,您可能希望在初始return;
块中有if
,因此在发生错误时不会继续循环。