问题描述
我正在从基于云的存储中检索 csv 文件作为 res.text 并需要将其转换为 json。
我想知道是否应该在 fetchUrl 的返回中进行解析,还是应该在路由中进行解析 (res.send)?
const fetchUrl = async () => {
const URL_1 = 'https://file.csv'
const res = await fetch(URL_1)
return res.text()
}
router.get('/data',async (req,res,next) => {
try {
const getAllData = await fetchUrl();
console.log(getAllData,'fetching?');
res.send(getAllData);
} catch (err) {
next(err);
//res.send({ message: err })
// res.status(404).send(err)
console.log(err)
}
})
解决方法
我使用了一个自定义函数,在第二个 .then 中将其转换为 json。这样我就不必在每次调用端点时获取数据,因为数据不会改变。 像这样:
let getAllData
fetch('https://file.csv')
.then(res => res.text())
.then(data => {
getAllData = csvToJSON(data)
getAllData.forEach((item) => {
item.startTime = new Date(item.startTime)
})
})