如何在node.js中将.csv转换为array/json/string

如何在node.js中将.csv转换为array/json/string,node.js,csv,express,Node.js,Csv,Express,我想在node.js/express中使用一个csv文件。如何将文件转换为array/json/string类型的变量。我试过: fs.readFile('Resource.csv', function(err, data) { console.log(data)} 我还尝试了很多其他的东西,但都不适合我。如果重要的话,数据是多行的 展开我的评论(来自csvtojson文档) 使用npm i安装--保存csvtojson 然后使用如下模块: CSV文件: a,b,c 1,2,3 4,5

我想在node.js/express中使用一个csv文件。如何将文件转换为array/json/string类型的变量。我试过:

fs.readFile('Resource.csv', function(err, data) {
    console.log(data)}
我还尝试了很多其他的东西,但都不适合我。如果重要的话,数据是多行的

展开我的评论(来自csvtojson文档)

使用
npm i安装--保存csvtojson

然后使用如下模块:

CSV文件:

a,b,c
1,2,3
4,5,6

JS代码:

const csvFilePath='<path to csv file>' // Resource.csv in your case
const csv=require('csvtojson') // Make sure you have this line in order to call functions from this modules
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
    console.log(jsonObj);
})

我试过了,得到了:TypeError:csv(…).fromFile(…)。那么你确定你安装并需要npm模块吗?是的@另外,如果您需要带有
const csvtojson=require('csvtojson')
的模块,那么您应该使用csvtojson(…).fromFile(…)。然后我会在控制台中获得奇怪的字符。可能编码错误。请使用
fs.readFileSync('Resource.csv',)
。控制台通常不能正确使用
utf-8
(和国家本地化)。如果csv的任何字段包含“,”字符,则此解决方案不起作用。很好的解决方案-非常简洁。此解决方案仅适用于大多数情况下最简单的csv。根据csv值可以引用并包含
\n
。您应该使用特殊的库进行生产。
[
  {a:"1", b:"2", c:"3"},
  {a:"4", b:"5". c:"6"}
]
var fs = require('fs');

var data = fs.readFileSync('Resource.csv')
    .toString() // convert Buffer to string
    .split('\n') // split string to lines
    .map(e => e.trim()) // remove white spaces for each line
    .map(e => e.split(',').map(e => e.trim())); // split each line to array

console.log(data);
console.log(JSON.stringify(data, '', 2)); // as json