Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Expressjs-将cassandra结果集流到客户端_Node.js_Express_Cassandra_Stream - Fatal编程技术网

Node.js Expressjs-将cassandra结果集流到客户端

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)

我必须将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)
   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>