在MySQL中与节点一起使用流
按照上的示例,我尝试将结果从MySQL流式传输到node.js中的stdout 代码如下所示:在MySQL中与节点一起使用流,mysql,node.js,stream,Mysql,Node.js,Stream,按照上的示例,我尝试将结果从MySQL流式传输到node.js中的stdout 代码如下所示: connection.query('SELECT * FROM table') .stream() .pipe(process.stdout); 我得到这个错误:TypeError:invalid data解释 从该项目的github: .stream()以“对象模式”返回流。你不能通过管道将其传输到标准输出或网络 套接字,因为“数据”事件将行作为有效负载,而不是缓冲区块 修
connection.query('SELECT * FROM table')
.stream()
.pipe(process.stdout);
我得到这个错误:TypeError:invalid data
解释
从该项目的github:
.stream()
以“对象模式”返回流。你不能通过管道将其传输到标准输出或网络
套接字,因为“数据”事件将行作为有效负载,而不是缓冲区块
修理
您可以使用模块修复此问题
请注意,在
.pipe(process.stdout)
之前有一个额外的.pipe(stringizer)
字符串(缓冲区,实际上)和对象模式之间的区别非常重要,但常常容易被忽略。接得好。
var stringify = require('csv-stringify');
var stringifier = stringify();
connection.query('SELECT * FROM table')
.stream()
.pipe(stringifier).pipe(process.stdout);