node 的 fs 模块是非常常用的模块,用来操作文件,文件夹等非常方便。
在前后端开发中,时常需要将数据导出为 csv,txt,甚至 pdf,网上很多案例都是使用了第三方库。
其实,fs 模块就足以帮我们完成简单的数据导出到文件操作。
下面,让我们用案例来看下,如何将数据导出为 csv 文件。
- 新建文件夹 node-csv
- 在文件夹内新建文件 demo.js
- 用编辑器打开,编辑 demo.js
// demo.js
const { promises: { readFile, writeFile, mkdir } } = require('fs');
(async () => {
// 创建模拟数据
let list = []
for (let i = 0; i < 10; i += 1) {
list.push({
id: i,
name: '小明',
age: 18,
address: '北京市海淀区农业科学院',
phone: '13313366789',
})
}
/*
* 生成表头,\ufeff 是防止乱码
* csv中以 `,` 换列,`\n`换行
*/
let title = Object.keys(list[1])
let csvContent = '\ufeff' + title.join(',') + '\n'
// 添加表体
list.forEach((item, index) => {
let c = Object.values(item).join(',') + '\n'
csvContent += c
})
// 生成文件夹存储生成的文件
await mkdir('download')
// 生成csv文件
await writeFile('./download/data.csv', csvContent)
// 生成JOSN
await writeFile('./download/data.json', JSON.stringify(list))
console.log('File generated successfully,open download to check')
})()
保存后在 cmd 或者 terminal 中运行如下命令
node demo
当你看到这样的提示
ExperimentalWarning: The fs.promises API is experimental
File generated successfully,open download to check
就说明成功了,然后打开 download 文件夹,查看生成的 csv 和 json 文件即可
如果想了解 fs 的 promise ,或者如何生成 txt,请点击这里
码字不易,送一个赞可好~~