
“好事”文章推荐:《手写 vite-plugin 在新建文件时自动使用模版代码》
文章地址:https://cloud.tencent.com/developer/article/2471711
文章讲述了在项目中使用vite-plugin 快速生成定制的模版代码,一切的一切都是为了提高开发效率。大家可以学习借鉴下,万一能在开发的时候用到呢?
事情的起因是,加入到新的小组中,在开发低代码后台管理页面的需求,需要配置一些下拉选项,后端因为一些特殊的原因,没法提供api接口,所以需要前端写成配置选项。这样问题就来了,新增了选项,但是没有给前端配置。美女运营老师都会来找开发,说:为什么新导入的数据没有显示啊,是不是有bug。。找了一圈发现是配置没加

我让运营老师,把新增数据表格给我配置下,丢过来新增数据上来就是1000+,手动加要哭死。于是我就想能否用脚本生成一个。
把csv下载到本地,转换成json,返回数据倒是能返回,但是不符合运营老师的要求,key值需要是 key: ${data.value}-${data.key}


const fs = require('fs')
const csv = require('csv-parser');
const uidsfilePath = './uids.json';
const datas = [`复制生成的json数据`];
let newarr = [];
format(datas);
fs.writeFile(uidsfilePath, JSON.stringify(newarr), () => {
console.log('done')
})
const format = (results) => {
newarr = results.map(item => {
return {
label: `${item.value}-${item.key}`,
value: item.value
}
})
}okok 到这里可以生成了。但是把想把这个事情还给运营老师,嘿
于是我又在这个基础上加上了读取CSV文件,格式化数据,输出JSON文件
csv-parser 是一个为Node.js设计的高效且流线型库,专注于快速解析CSV数据。它旨在提供最小的开销,保持简单轻量,特别适配于Node.js的流处理。此库遵循RFC 4180标准,并通过csv-spectrum的酸性测试套件,确保了对各种CSV变体的广泛兼容性和正确性。性能方面,csv-parser在处理大文件时表现出色,无论是带引号还是不带引号的CSV数据。
开始使用csv-parser,首先确保你的环境中已安装Node.js。接着,通过npm安装
csv-parser:
npm install csv-parserconst fs = require('fs');
const parse = require('csv-parser');
fs.createReadStream('yourfile.csv')
.pipe(parse({ headers: true }))
.on('data', (row) => {
console.log(row);
})
.on('end', () => {
console.log('CSV file successfully processed');
});直接获取csv文件,生成输出JSON
const fs = require('fs')
const csv = require('csv-parser');
const csvfilePath = './新增UID.csv';
const uidsfilePath = './uids.json';
const results = [];
let newarr = [];
fs.createReadStream(csvfilePath)
.pipe(csv({ headers: true }))
.on('data', (data) => {
results.push(data);
})
.on('end',async () => {
await format(results);
fs.writeFile(uidsfilePath, JSON.stringify(newarr), () => {
console.log('done')
})
});
const format = (results) => {
newarr = results.map(item => {
if(item._0 === 'key' || item._1 === 'value') {
return {}
}
return {
label: `${item._1}-${item._0}`,
value: item._1
}
})
}部分生成的数据

到这里又节省了一些时间,但是运营老师既不会安装node,也不会使用命令执行node CSVtoJSON.js,太复杂了不会弄。。。我说你提个需求吧,后面给您做成页面上传csv文件,返回JSON数据,点击一键复制好不好。
仅供娱乐,欢迎吐槽
未完待续,持续更新中...
感谢关注点赞评论~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。