国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Meteor:方法控制

CKJOKER / 2959人閱讀

摘要:通過這種方式我們可以用權(quán)限驗證的方式對于用戶端提交的行為判斷,確定用戶的提交形式是符合我們的要求的。同樣的我們需要增加和方法。這種工作方式的原理類似與,客戶端發(fā)送請求到服務器端,服務器更新,通知客戶端,客戶端正確的顯示數(shù)據(jù)。

在之前的例子中,我都是使用的很小的demo,所有的測試都可以在客戶端直接對database進行CURD.實際的項目中有可以需要對于用戶操作databse有一定的權(quán)限控制,在meteor中,最好的方法是通過自定義方法(call method)的形式,代替用戶端直接進行,insert,update和remove。通過這種方式我們可以用權(quán)限驗證的方式對于用戶端提交的行為判斷,確定用戶的提交形式是符合我們的要求的。

移除 insecure

每個meteor創(chuàng)建的項目,默認是 insecure的 ,默認是允許用戶在客戶端是可以更改database的,現(xiàn)在需要移除insecure

meteor remove insecure

Changes to your project"s package version selections:

insecure  removed from your project

insecure: removed dependency

insecure成功移除,移除之后我們在Meteor.isClient中的insert,update,remove都無法使用了,因為不開啟insecure的應用不能在客戶端直接更新database的數(shù)據(jù),需要使用下面的方法才可以更新database。

定義方法

我們定義方法讓客戶端代碼可以操作數(shù)據(jù)庫,Meteor.methods用來定義方法的,他定義的方法可以不需要在client或者server里面,兩邊都可以訪問!

Meteor.methods({
    addLanguage: function (text) {
        //   auth
        //if (!Meteor.userId()) {
        //    throw new Meteor.Error("need login");
        //}

        Languages.insert({
            name: text,
            createdAt: new Date()
        });


    }
});

再對update 和remove操作增加定義的方法:

updateLanguage: function (_id) {
        Languages.update(_id, {
            $set: {updateAt: new Date()}
        })

    },
    removeLanguage: function (_id) {
        Languages.remove(_id);
    }
調(diào)用 Meteor.Methods

調(diào)用已經(jīng)定義的Meteor需要使用:Meteor.call

  Template.body.events({
        "submit .new-language": function (event) {
            event.preventDefault();
            var text = event.target.text.value;
            Meteor.call("addLanguage", text);

        }
    });

Meteor.call的第一個參數(shù)是函數(shù)名字,第二個參數(shù)是需要傳的變量。同樣的我們需要增加update和delete方法。

現(xiàn)在insert,update和delete又可以正常的在工作了。
這種工作方式的原理類似與ajax,客戶端發(fā)送請求到服務器端,服務器更新database,通知客戶端,客戶端正確的顯示數(shù)據(jù)。

項目地址:https://github.com/jjz/meteor/tree/master/meteor-security

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/18828.html

相關(guān)文章

  • Meteor:方法控制

    摘要:通過這種方式我們可以用權(quán)限驗證的方式對于用戶端提交的行為判斷,確定用戶的提交形式是符合我們的要求的。同樣的我們需要增加和方法。這種工作方式的原理類似與,客戶端發(fā)送請求到服務器端,服務器更新,通知客戶端,客戶端正確的顯示數(shù)據(jù)。 在之前的例子中,我都是使用的很小的demo,所有的測試都可以在客戶端直接對database進行CURD.實際的項目中有可以需要對于用戶操作databse有一定的權(quán)...

    seal_de 評論0 收藏0
  • Meteor:發(fā)布與訂閱

    摘要:發(fā)布與訂閱在端使用函數(shù)注冊一個的發(fā)布者,需要在客戶端對進行訂閱,使用訂閱了現(xiàn)在已經(jīng)添加的數(shù)據(jù)就會重新出現(xiàn)在頁面上。利用發(fā)布訂閱模式,我們也可以實現(xiàn)對于私有數(shù)據(jù)的訪問。 我們可以使用安全的方法讓用戶端不直接操作數(shù)據(jù)庫,但是還是可以直接讀取數(shù)據(jù)庫內(nèi)容,如果我們還需要保護私有的數(shù)據(jù)存儲,在客戶端直接使用Collection.find(),這樣的操作方式在實際的項目中并不會使用,這樣的數(shù)據(jù)無法...

    animabear 評論0 收藏0
  • Meteor:發(fā)布與訂閱

    摘要:發(fā)布與訂閱在端使用函數(shù)注冊一個的發(fā)布者,需要在客戶端對進行訂閱,使用訂閱了現(xiàn)在已經(jīng)添加的數(shù)據(jù)就會重新出現(xiàn)在頁面上。利用發(fā)布訂閱模式,我們也可以實現(xiàn)對于私有數(shù)據(jù)的訪問。 我們可以使用安全的方法讓用戶端不直接操作數(shù)據(jù)庫,但是還是可以直接讀取數(shù)據(jù)庫內(nèi)容,如果我們還需要保護私有的數(shù)據(jù)存儲,在客戶端直接使用Collection.find(),這樣的操作方式在實際的項目中并不會使用,這樣的數(shù)據(jù)無法...

    leone 評論0 收藏0
  • 翻譯 Meteor React 制作 Todos - 11 - 發(fā)布訂閱

    摘要:通過發(fā)布訂閱模式過濾數(shù)據(jù)現(xiàn)在我們已經(jīng)把應用中比較敏感的代碼放到了一些方法里面,我們還需要學習安全故事的另一半內(nèi)容了。當在客戶端被調(diào)用時傳入發(fā)布器名稱,客戶端將會從發(fā)布器訂閱所有的數(shù)據(jù)。這個按鈕應該只是給任務的所有者來顯示。 通過發(fā)布訂閱模式過濾數(shù)據(jù) 現(xiàn)在我們已經(jīng)把應用中比較敏感的代碼放到了一些方法里面,我們還需要學習Meteor安全故事的另一半內(nèi)容了。到現(xiàn)在為止,我們一直是假設整個整個...

    用戶83 評論0 收藏0
  • Meteor的模板

    摘要:在文件中使用模板模板定義三個最高級別的標簽不用寫了,能省則省的模板可以自由的使用標簽比如上面的使用的標簽。在模板中使用邏輯是模板語言,是安全的不會輸出標簽他具有以下常用的語法導入指定的模板循環(huán)判斷等詳細的說明可以參考。 新建一個項目Meteor meteor create meteor-template 會生成三個文件: meteor-template.css meteor-templ...

    cjie 評論0 收藏0

發(fā)表評論

0條評論

CKJOKER

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<