解析 res.text Node express

问题描述

我正在从基于云的存储中检索 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)
    })
  })