2016-09-07 50 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); 
     } 
    }); 
}, 

出口是集合。這是對我幫助的功能。