我正在尝试为我之前的帖子找到解决方案:Mongo在Meteor应用程序中的_id_字段上给出了重复的键错误
为了做到这一点,我想从服务器端的CSV文件中读取数据,而不是从客户端读取数据.
首先,我在本文中尝试使用node-csv和meteor-file将CSV导入集合,但meteor-file与当前版本的Meteor不再兼容.我也尝试过这个帖子上传数据到Meteor/Mongo数据库的解决方案,但它也在客户端上,该解决方案产生的错误与我之前的帖子相同.
经过一些进一步的研究后,我尝试用下面的代码读取数据.但它不起作用:
首先我创建了一个集合:
Meteor.orders = new Meteor.Collection('Orders');
Run Code Online (Sandbox Code Playgroud)
我定义了以下模板来读取csv文件:
<template name="read_file_orders">
<form class="well form-inline">
<label class="control-label" for="fileInput2">Kies bestand</label>
<input class="input-file" id="fileInput2" type="file" name="files[]">
<Button class="btn btn-primary" id="read_orders">Importeer</button>
<button class="btn btn-danger" id="erase_orders">Wis gegevens</button>
</form>
</template>
Run Code Online (Sandbox Code Playgroud)
这是客户端javascript:
Template.read_file_orders.events({
"click #read_orders" : function(e) {
var f = document.getElementById('fileInput2').files[0];
console.log("read file");
readFile(f, function(content) {
Meteor.call('upload',content);
});
}
});
readFile = function(f,onLoadCallback) {
var reader = new FileReader();
reader.onload = function (e){
var contents=e.target.result
onLoadCallback(contents);
}
reader.readAsText(f);
};
Run Code Online (Sandbox Code Playgroud)
这是服务器javascript: …