客户端代码
const a = document.createElement('a')
a.href = `url`document.body.appendChild(a)
a.click()
document.body.removeChild(a)
node层获取数据源,返回csv
const iconv = require('iconv-lite')const axios = require('axios')
let download = await axios({
method: 'post',
timeout: 5000,
data: {},
url: `url`,
}).then(data => data.data || {}).
catch(err => {
return {}
})
let { rows = [] } = download //获取接口数据源
rows = rows.map(item => item.cols || [])
rows = stringify(rows)
let str = Buffer.from(rows); //字符串转buffer
str = iconv.encode(str, 'GBK');//处理中文字符乱码的问题
res.setHeader('Content-Type', 'text/csv')
res.setHeader('Content-Disposition', `attachment; filename="eg.csv"`)
res.send(str)