Stream Mon goose Результат в виде потока CSV Ответ на хапи. js v.17 - PullRequest
0 голосов
/ 13 января 2020

Я в основном пытаюсь:

  1. Поток запросов к MongoDB с помощью mon goose
  2. Преобразовать результат потока с помощью fast-csv
  3. Ответ обратного потока

Как я могу сделать это правильно?

Вот мой код обработчика

async function handler(req, h) {
  const fastCsv = require('fast-csv')
  const Mongoose = require('mongoose')
  const LOS = Mongoose.model('LoanOriginationSystem')
  const stream = LOS.find({}).stream()

  const transformer = (doc) => {
    return {
      'APPLICATION ID': doc._id,
      'PHONE NUMBER': doc.phone_number,
      'NAME': doc.name,
      'TIME CREATED': doc.time_created,
      'APPROVED CREDIT AMOUNT': doc.detail.approved_credit_limit,
      'STATUS': doc.application_status,
      'LAST UPDATE': doc.last_update_time
    }
  }

  const csvStream = fastCsv.createWriteStream({ headers: true }).transform(transformer)
  const readStream = stream.pipe(csvStream)


  return h.response(readStream)
    .header('Content-type', 'application/octet-stream')
    .header('content-Disposition', 'attachment;filename="response-result.csv"')
}

Это ошибка возврата Cannot reply with stream in object mode

...