如何在流星中写入和读取csv或json文件

时间:2016-09-07 08:53:21

标签: json node.js csv meteor papaparse

我正在使用papaParse 我想将此包的结果保存到文件中,用户可以下载它。做这个的最好方式是什么?我也使用这个node.js代码来做它

var csv = Papa.unparse(Users.find().fetch());
console.log("csv : " + JSON.stringify(csv)); // get csv format (not in file)
fs.writeFile("meteorProject/public/", csv, function(err) {
if(err) {
    return console.log(err);
}

console.log("The file was saved!");
});

但是会出现此错误

  

{[错误:EISDIR:目录上的非法操作,打开'meteorProject / public /']   I20160907-13:00:26.970(4.5)?错误:-21,   I20160907-13:00:26.970(4.5)?代码:'EISDIR',   I20160907-13:00:26.970(4.5)?系统调用:'打开',   I20160907-13:00:26.970(4.5)?路径:'meteorProject / public /'}

怎么解决呢? 谢谢: - )

2 个答案:

答案 0 :(得分:1)

这是与目录相关的问题请检查您在此处给出的目录路径。即 - “meteorProject / public /”。 所以你需要改变的只是你正在使用的目录名。 当我尝试使用我的目录并且运行良好时。 或者我建议您在保存文件时尝试使用fileName.csv 喜欢: - meteorProject / public / test.csv

或者只是完全改变目录的路径,就像我尝试使用我的ubuntu机器并运行良好一样。

var userArray = Users.find().fetch();
var data = Papa.unparse(userArray);
console.log("data is....");
console.log(data);
fs.writeFile('/home/parveen/test/test.csv',data,function(err,res){
    if(err){
        console.log("err while saving");
        console.log(err)
    }
    else{
        console.log("File saved");
        console.log(res);
    }
});

以上代码通过test.csv名称将文件保存在测试文件夹中。

如果您再次面临任何问题,请检查并告诉我们。 如果您想深入了解您的错误,请参阅链接: -

https://github.com/bekk/grunt-retire/issues/2

希望这会有所帮助!

由于

答案 1 :(得分:1)

最后我使用了这个包:Meteor-Files 解决这个问题! 这是示例代码:

 export(){
    var csv = Papa.unparse(Users.find({},{fields:{_id:0}}).fetch());
    Exports.write(csv,{
        fileName: 'backup'+ new Date().getTime() +'.csv',
        type: 'text/csv'
    }, function (error, fileRef) {
        if (error) {
            throw error;
        } else {
            console.log(fileRef.name + ' is successfully saved to FS. _id: ' + fileRef._id);
        }
    });
},

出口是集合。这是帮助我的功能。