我的 next.js 项目中有一个 API 路由,其想法是它处理来自我工作的公司正在使用的 API 的统计信息。它可以毫无问题地通过整个函数,直到需要将 CSV 转换为 JSON 数组,然后它只是返回为[]
我想如果我删除 CSVtoJSON 转换代码并运行以下载文件,然后更改代码,使其具有 CSVtoJSON 代码,但删除文件的下载,它会将 CSV 解析为我想要的 JSON,而不会出现问题。
我正在使用 asyn/await 函数,所以我不确定为什么当我尝试将它作为一个完整函数运行时它会将文件读取为空,但如果我单独运行每个块则不会。
// logs.ts
import {NextApiRequest, NextApiResponse} from 'next'
import {processStats, fetchCsv, downloadFile} from './functions'
export default async (req: NextApiRequest, res: NextApiResponse) => {
const request = await processStats(1, 1, 'UTC', 'records', 'calls')
const csv_url = await fetchCsv(request.request_id)
const parsedf = await downloadFile(csv_url.download_url)
res.status(200).json(parsedf)
}
// downloadFile function
export async function downloadFile(url) {
const fs = require('fs')
const https = require('https')
const csv = require('csvtojson')
const fp = await fs.createWriteStream('pages/api/stats/data.csv')
const req = await https.get(url, function (res) {
res.pipe(fp)
})
const jsonArray = await csv().fromFile('pages/api/stats/data.csv')
return jsonArray
}
不会抛出任何错误,它只是发回空[]
数组。
任何帮助将不胜感激。
苹果电脑