Бяхте много близки. Просто трябваше да направя няколко промени, за да заработи.
Не знам как изглежда вашият .csv файл, затова направих такъв:
A1, B1, C1, D1, E1, F1, G1, H1, I1
A2, B2, C2, D2, E2, F2, G2, H2, I2
Вашата операция file.split не разделяше редовете, а поставяше всичко на един голям ред. Направих го по този начин и се получи:
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 от клиентския блок в сървърния блок.