2016-09-07 55 views
0

我正在使用papaParse 我想将此包的结果保存到文件中,用户可以下载它。做这个的最好方式是什么?还我用这个Node.js的代码做到这一点如何从流星的csv或json文件中读取和读取

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!"); 
}); 

,但给这个错误

{ [Error: EISDIR: illegal operation on a directory, open 'meteorProject/public/'] I20160907-13:00:26.970(4.5)? errno: -21, I20160907-13:00:26.970(4.5)? code: 'EISDIR', I20160907-13:00:26.970(4.5)? syscall: 'open', I20160907-13:00:26.970(4.5)? path: 'meteorProject/public/' }

以及如何解决这一问题? 谢谢:-)

+0

长话短说 - 你提供了文件夹'meteorProject/public /'而不是文件'meteorProject/public/my.csv' –

回答

1

这是与目录有关的问题,请检查你在这里给出的目录路径。即 - “meteorProject/public /”。 所以你需要改变的只是你正在使用的目录名称。 当我试着用我的目录和它的运行良好。 或者我建议你与fileName.csv尝试以及保存文件时 ,如: - meteorProject /公/ 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

最后我用这个包: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); 
     } 
    }); 
}, 

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