Anda sangat dekat. Saya hanya perlu membuat beberapa perubahan untuk membuatnya berfungsi.
Saya tidak tahu seperti apa file .csv Anda, jadi saya membuatnya seperti ini:
A1, B1, C1, D1, E1, F1, G1, H1, I1
A2, B2, C2, D2, E2, F2, G2, H2, I2
Operasi file.split Anda tidak memisahkan baris, tetapi menempatkan semuanya dalam satu baris besar. Saya melakukannya dengan cara ini dan berhasil:
var lines = file.split(/\r\n|\n/);
Itu membuat baris individu untuk dibagi menjadi anggota array. Kemudian saya berasumsi bahwa, karena Anda menyebut input Anda sebagai CSV, nilai Anda dipisahkan dengan koma, bukan pipa. Jadi saya mengubah line.split Anda menjadi ini
var line_parts = line.split(',');
Perubahan lain yang saya buat mungkin bukan penyebab kegagalan Anda, tetapi menurut saya beginilah hal yang biasa dilakukan...
Alih-alih mendeklarasikan koleksi Anda seperti ini
Meteor.orders = new Meteor.Collection('Orders');
Saya melakukannya seperti ini
Orders = new Mongo.Collection("orders");
Perhatikan bahwa ini dijalankan oleh server dan klien.
Alih-alih cara Anda mendeklarasikan metode di server, saya hanya memasukkan ini ke dalam kode server (bukan di Meteor.start):
Meteor.methods({
upload : function(fileContent) {
console.log("start insert");
import_file_orders(fileContent);
console.log("completed");
}
});
Dan, tentu saja, saya mengubah baris sisipan di bagian bawah fungsi import_file_orders Anda
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));
EDIT untuk kode yang diperbarui dalam pertanyaan:
Pindahkan fungsi import_file_orders dari blok klien ke blok server.