Byli jste si velmi blízcí. Jen jsem musel udělat pár změn, aby to fungovalo.
Nevím, jak váš soubor .csv vypadá, takže jsem vytvořil takovýto:
A1, B1, C1, D1, E1, F1, G1, H1, I1
A2, B2, C2, D2, E2, F2, G2, H2, I2
Vaše operace file.split nerozdělovala řádky, ale dávala vše na jeden velký řádek. Udělal jsem to takto a fungovalo to:
var lines = file.split(/\r\n|\n/);
Tím se jednotlivé řádky rozdělily na členy pole. Pak jsem předpokládal, že vzhledem k tomu, že svůj vstup nazýváte CSV, jsou vaše hodnoty odděleny čárkami, nikoli svislými čarami. Takže jsem změnil váš line.split na toto
var line_parts = line.split(',');
Jiné změny, které jsem provedl, možná nezpůsobily ty vaše selhání, ale myslím si, že takhle se věci dělají normálně...
Místo toho, abyste svou sbírku takto deklarovali
Meteor.orders = new Meteor.Collection('Orders');
Udělal jsem to takto
Orders = new Mongo.Collection("orders");
Všimněte si, že to spouští server i klient.
Místo vašeho způsobu deklarování metod na serveru jsem to vložil do kódu serveru (ne do Meteor.start):
Meteor.methods({
upload : function(fileContent) {
console.log("start insert");
import_file_orders(fileContent);
console.log("completed");
}
});
A samozřejmě jsem změnil řádek vložení ve spodní části vaší funkce 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));
UPRAVTE aktualizovaný kód v otázce:
Přesuňte funkci import_file_orders z bloku klienta do bloku serveru.