簡體   English   中英

在不使用集合的情況下將服務器端計算返回給客戶端

[英]Return server-side calculation to client without using a collection

數據是在客戶端上生成的,並保存在本地集合中:

ListLocal = new Mongo.Collection(null);

let seed = [{
        name: "A",
        value: 1
    }, {
        name: "B",
        value: 2
    }, {
        name: "C",
        value: 3
    }];

    if (ListLocal.find().count() === 0) {
        ListLocal.forEach(function(entry) {
            ListLocal.insert(entry);
        });
    };

然后將其在客戶端上傳遞給服務器以進行進一步處理:

Template.home.events({
    "click .btn-process": function(event) {
        event.preventDefault();
        let localData = ListLocal.find({}).fetch();

        Meteor.call("processData", localData);
    }
});  

服務器接受數據並將其傳遞給服務器端方法,該方法對數據進行一些處理。 將傳遞的對象的所有值加倍:

Meteor.methods({
    processData(localData) {
        calculateDouble(localData);
    }
});

calculateDouble(localData) {
    // ...
    return calculatedData;
}

現在,我想在客戶端顯示此calculatedData,而不將其保存在服務器端數據庫中。

問題:如何將這些數據傳遞給客戶端?

只需從方法中返回數據:

Meteor.methods({
    "processData": function(localData) {
        return calculateDouble(localData);
    }
});

calculateDouble(localData) {
    // ...
    return calculatedData;
}

在事件中調用方法:

Template.home.events({
    "click .btn-process": function(event) {
        event.preventDefault();
        let localData = ListLocal.find({}).fetch();

        Meteor.call("processData", localData, function(error, result){
           //handle what you need to do with the result here.
        });
    }
});  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM