Du var väldigt nära. Jag var bara tvungen att göra några ändringar för att få det att fungera.
Jag vet inte hur din .csv-fil ser ut, så jag gjorde en som är så här:
A1, B1, C1, D1, E1, F1, G1, H1, I1
A2, B2, C2, D2, E2, F2, G2, H2, I2
Din file.split-operation var inte att dela upp raderna, utan satte allt på en stor rad. Jag gjorde på det här sättet och det fungerade:
var lines = file.split(/\r\n|\n/);
Det fick enskilda rader att delas upp i medlemmar av arrayen. Sedan antog jag att, eftersom du kallar din indata för en CSV, är dina värden separerade med kommatecken, inte rör. Så jag ändrade din line.split till detta
var line_parts = line.split(',');
Andra ändringar som jag gjorde kanske inte var det som gjorde att dina misslyckades, men det är så här jag tror att saker och ting normalt görs...
Istället för att deklarera din samling så här
Meteor.orders = new Meteor.Collection('Orders');
Jag gjorde så här
Orders = new Mongo.Collection("orders");
Observera att detta körs av både servern och klienten.
Istället för ditt sätt att deklarera metoder på servern lägger jag bara in detta i serverkoden (inte i Meteor.start):
Meteor.methods({
upload : function(fileContent) {
console.log("start insert");
import_file_orders(fileContent);
console.log("completed");
}
});
Och, naturligtvis, ändrade jag infogningsraden längst ned i 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));
REDIGERA för uppdaterad kod i frågan:
Flytta import_file_orders-funktionen från klientblocket till serverblocket.