0

我基本上是在尝试:

  1. 使用 mongoose 向 MongoDB 查询流
  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

4

0 回答 0