我正在实现一个使用Node / Request来获取GET JSON对象的节点应用程序,然后管道响应以处理传入的对象并进一步传递它们。在功能测试中,我使用Node / Express来模拟使JSON数组可用的实际端点。我的问题是整个对象数组是转移而不是逐个对象。
这是消费者应用程序(简化):
request('http://localhost:3000/processable')
.pipe new ResultStream
class ResultStream extends stream.Writable
constructor: ->
super
objectMode: true
_write: (chunk, enc, next) ->
console.log('Result chunk: ',chunk)
console.log('Result enc: ',enc)
console.log('Result parse: ',JSON.parse(chunk))
next()
在测试中
mock = express()
data = [
{uuid: 'ac475cf4-ef10-4be2-8a65-665178f9682c', status: 'whatever'},
{uuid: 'bc321fc3-fe70-5eb4-f968-9682c75cf455', status: 'great'}
]
mock.get('/processable', (req,res) ->
res.json(data)
)
mock.listen(3000)
输出:
Result chunk: <Buffer 5b 7b 22 65 76 65 ....
Result enc: buffer
Result parse: [ { uuid: 'ac47 ....}, {...} ]
我的期望是在数组中按照JSON对象调用ResultStream,但是我收到了整个数组。我错过了什么或误解了什么吗?