Node/Request を使用して 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 オブジェクトごとに呼び出されますが、配列全体を受け取ります。私は何かを見逃しているか、何かを誤解していますか?