Du var meget tæt på. Jeg skulle bare lave et par ændringer for at få det til at virke.
Jeg ved ikke, hvordan din .csv-fil ser ud, så jeg lavede en, der er sådan her:
A1, B1, C1, D1, E1, F1, G1, H1, I1
A2, B2, C2, D2, E2, F2, G2, H2, I2
Din file.split-operation splittede ikke linjerne, men satte alt på én stor linje. Jeg gjorde det på denne måde, og det virkede:
var lines = file.split(/\r\n|\n/);
Det fik individuelle linjer til at opdele i medlemmer af arrayet. Så gik jeg ud fra, at da du kalder dit input for en CSV, er dine værdier adskilt af kommaer, ikke rør. Så jeg ændrede din line.split til dette
var line_parts = line.split(',');
Andre ændringer, jeg lavede, var måske ikke det, der fik dine til at mislykkes, men det er sådan, jeg tror, tingene normalt gøres...
I stedet for at erklære din samling sådan her
Meteor.orders = new Meteor.Collection('Orders');
Jeg gjorde det sådan her
Orders = new Mongo.Collection("orders");
Bemærk, at dette køres af både serveren og klienten.
I stedet for din måde at erklære metoder på serveren, sætter jeg bare dette ind i serverkoden (ikke i Meteor.start):
Meteor.methods({
upload : function(fileContent) {
console.log("start insert");
import_file_orders(fileContent);
console.log("completed");
}
});
Og selvfølgelig ændrede jeg indsætningslinjen i bunden af din import_file_orders-funktion
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));
REDIGER for opdateret kode i spørgsmålet:
Flyt funktionen import_file_orders fra klientblokken til serverblokken.