迭代NodeJS中的循环时出现TypeError

时间:2015-10-05 09:36:51

标签: javascript node.js

我正在尝试将数据库数据写入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();


        });
});

1 个答案:

答案 0 :(得分:4)

您正在使用对象调用write。根据文档,它必须是字符串或缓冲区:

  

chunk可以是字符串或缓冲区。如果chunk是一个字符串,则第二个参数指定如何将其编码为字节流。默认情况下,编码为'utf8'。当刷新这一块数据时,将调用最后一个参数回调。

附注:您没有正确处理错误情况,您可能希望在初始return;块中有if,因此在发生错误时不会继续循环。