2
反應變量上傳文件時,我使用更新從事件
Template.uploadFile.events({
'change .set-file': function (event, template) {
var file = event.currentTarget.files[0];
[...]
}
});
。
我想讀取文件中的每一行,並將每行作爲文檔插入集合中。
問題是我想反應性地顯示用戶已創建了多少行。
首先,我需要將文件中的行數設置爲一個變量。我必須在事件中設置變量,因爲我只知道文件讀取後的行數(即事件已被觸發)。
我想我必須做一些像
Template.uploadFile.helpers({
numRows: function() {
return ?;
},
numInsertedRows: function() {
return ?;
},
});
插入的行數可能只是我收藏的文件數量;不過,我猜想在插入集合的同時,需要從集合中讀取內存。
所以我認爲最好只使用普通變量,因爲所有的信息都應該在不詢問數據庫的情況下可用。
我有一個循環
rowsInFile.forEach(function (row) {
// add 1 to number of inserted rows
});
但環也應該改變反應變量之一。
我想我應該使用一個無功變量。我對嗎?這是最有效的內存方式嗎?
我不會從客戶端插入行,而是在服務器上獲取文件本身並在那裏處理它。造成這種情況的主要原因是,如果用戶在操作過程中斷開連接或關閉瀏覽器窗口,將會被切斷,並且很難再次清理應用。 – MasterAM
我該怎麼做?這聽起來比在客戶端上做得更有吸引力。 – Jamgreen
預期的數據文件有多大?將數據作爲字符串數組發送到服務器是否可行?如果預計不會太大,最簡單的選擇是(通過一種方法)。您應該提供一些關於您正在處理的處理類型的更多信息。 – MasterAM