あなたはとても近かった。動作させるためにいくつかの変更を加える必要がありました。
.csvファイルがどのようなものかわからないので、次のようなファイルを作成しました:
A1, B1, C1, D1, E1, F1, G1, H1, I1
A2, B2, C2, D2, E2, F2, G2, H2, I2
file.split操作は行を分割していませんでしたが、すべてを1つの大きな行に入れていました。私はそれをこのように行い、それは機能しました:
var lines = file.split(/\r\n|\n/);
これにより、個々の行が配列のメンバーに分割されました。次に、入力をCSVと呼んでいるため、値はパイプではなくコンマで区切られていると仮定しました。だから私はあなたのline.splitをこれに変更しました
var line_parts = line.split(',');
私が行った他の変更は、あなたの失敗の原因ではないかもしれませんが、これは私が物事が通常行われていると思う方法です...
このようにコレクションを宣言する代わりに
Meteor.orders = new Meteor.Collection('Orders');
私はこのようにしました
Orders = new Mongo.Collection("orders");
これはサーバーとクライアントの両方によって実行されることに注意してください。
サーバーでメソッドを宣言する方法の代わりに、これをサーバーコードに入れます(Meteor.startではありません):
Meteor.methods({
upload : function(fileContent) {
console.log("start insert");
import_file_orders(fileContent);
console.log("completed");
}
});
そしてもちろん、import_file_orders関数の下部にある挿入行を変更しました
var result = Orders.insert({Patient:pat_id, Exam_code:ex_key, Exam_name:ex_name, Clinical_info:clin_info, Order_info:order_info, Clinician_first:clinician_first_name, Clinician_last:clinician_last_name, Clinician_c_code:clinician_code, Clinician_riziv:clinician_riziv, Planned:null});
console.log(Orders.findOne(result));
質問の更新されたコードを編集する:
import_file_orders関数をクライアントブロックからサーバーブロックに移動します。