0

我正在实现一个节点应用程序,该应用程序使用节点/请求来获取 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 ....}, {...} ]

我的期望是 ResultStream 将被数组中的每个 JSON 对象调用,但我收到整个数组。我错过了什么或误解了什么?

4

0 回答 0