如何在节点js中读取csv文件

新手上路,请多包涵

我正在尝试使用节点 js 读取 csv 文件。她是我的密码

fs.readFile(config.csvUploadPath, function read(err, data) {
    if (err) {
        throw err;
    }
    console.log(data + 'my data')
});

安慰:

 ID
D11
D33
D55

在这里,我想获取列 ID 中的元素并将它们存储在一个数组中。我怎样才能做到这一点?谁能建议我帮忙。谢谢。我的控制器:

 var partnersModel = new partners(params);
        fs.readFile(config.csvUploadPath, function read(err, data) {
            if (err) {
                throw err;
            }
        dataArray = data.toString().split(/\r?\n/);
            dataArray.forEach(function(v,i){
                if(v !== 'DUI'){
                  partnersModel.dui.push(v);
                }
            });
        });
        partnersModel.save(function(error, response){

原文由 MMR 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 447
1 个回答

使用库,CSV 有很多陷阱。我来享受套餐 csv 。它位于: https ://www.npmjs.com/package/csv。这是一个使用异步 api 的非常简单的示例。

 const fs = require('fs')
var parse = require('csv-parse')
fs.readFile(inputPath, function (err, fileData) {
  parse(fileData, {columns: false, trim: true}, function(err, rows) {
    // Your CSV data is in an array of arrys passed to this callback as rows.
  })
})

由于您的文件每行没有多个值,并且除换行符外不包含定界符,因此它只是普通的 CSV。也许 String.prototype.split() 适合你?

 const fs = require('fs')
fs.readFile(inputPath, 'utf8', function (err, data) {
  var dataArray = data.split(/\r?\n/);  //Be careful if you are in a \r\n world...
  // Your array contains ['ID', 'D11', ... ]
})

原文由 trognanders 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题