我基本上是在尝试:
- 使用 mongoose 向 MongoDB 查询流
- 使用 fast-csv 转换流结果
- 返回流响应
我怎样才能正确地做到这一点?
这是我的处理程序代码
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