Node.js Expressjs-将cassandra结果集流到客户端
我必须将cassandra返回的json结果集流传输到浏览器。我使用express stream实现了它,但这涉及到将每行字符串化并将其传递给res.pipe() 我想知道为什么以下内容不起作用:Node.js Expressjs-将cassandra结果集流到客户端,node.js,express,cassandra,stream,Node.js,Express,Cassandra,Stream,我必须将cassandra返回的json结果集流传输到浏览器。我使用express stream实现了它,但这涉及到将每行字符串化并将其传递给res.pipe() 我想知道为什么以下内容不起作用: app.get('/api/v1/streamevents', function (req, res) { let cstream = client.stream(selectQuery, ['339aa84a-4bba-411f-a4fb-38167a987cd2'],options)
app.get('/api/v1/streamevents', function (req, res) {
let cstream = client.stream(selectQuery, ['339aa84a-4bba-411f-a4fb-38167a987cd2'],options)
cstream.pipe(res)
})
我发现以下错误:
TypeError: First argument must be a string or Buffer
at ServerResponse.write (_http_outgoing.js:458:11)
at ResultStream.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at ResultStream.emit (events.js:188:7)
at ResultStream.Readable.read (_stream_readable.js:381:10)
根据Cassandra驱动程序的流
方法:
在objectMode中返回可读的Streams2对象
同时,底层的ServerResponse.write
在发送到客户端时只接受String
或Buffer
作为数据块,而不是对象
这就是为什么当每一行都被字符串化时它会工作的原因
>您必须使用中间的<代码>转换>代码>流,将选定的单元格值转换为String .< /P>< P> > CasDANRA驱动程序<<代码>流>代码>:
在objectMode中返回可读的Streams2对象 同时,底层的ServerResponse.write
在发送到客户端时只接受String
或Buffer
作为数据块,而不是对象
这就是为什么当每一行都被字符串化时它会工作的原因
您必须在中间使用<代码>转换>代码>流,将选定的单元格值转换为String。< /P>