آموزش انتشار و اشتراک در Meteor
آموزش انتشار و اشتراک در Meteor
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش انتشار و اشتراک در Meteor خواهیم پرداخت.
همانطور که قبلاً در درس مجموعه ها بحث شد، تمام داده های ما از طرف مشتری در دسترس است. این یک مسئله امنیتی است که می تواند با روش های انتشار و اشتراک حل شود.
حذف انتشار خودکار
در این مثال، ما از مجموعه PlayersCollection با داده های زیر استفاده خواهیم کرد. ما قبلاً این مجموعه را آماده کردیم تا بتوانیم روی فصل خود تمرکز کنیم. اگر مطمئن نیستید که چگونه می توانید مجموعه های MongoDB را در برنامه شهاب سنگ ایجاد کنید ، فصل مجموعه های ما را بررسی کنید.
برای ایمن سازی داده های خود ، باید بسته انتشار خودکار را که به ما امکان می داد از داده های سمت مشتری استفاده کنیم حذف کنیم.
1 |
C:\Users\username\Desktop\meteorApp>meteor remove autopublish |
پس از این مرحله، ما نمی توانیم داده های پایگاه داده را از سمت مشتری دریافت کنیم. فقط می توانیم آن را از سمت سرور در پنجره خط فرمان ببینیم. کد زیر را پرداخت کنید –
meteorApp.js
1 2 3 |
var PlayersCollection = new Mongo.Collection('playersCollection'); var myLog = PlayersCollection.find().fetch(); console.log(myLog); |
پنجره خط فرمان کل مجموعه را با چهار شی نشان می دهد ، در حالی که کنسول توسعه دهندگان یک آرایه خالی را نشان می دهد. اکنون برنامه ما از امنیت بیشتری برخوردار است.
استفاده از انتشار و اشتراک
بیایید بگوییم ما می خواهیم به مشتریان اجازه دهیم از داده های ما استفاده کنند. برای این منظور ، باید روش ()Meteor.publish را در سرور ایجاد کنیم. این روش داده ها را برای مشتری ارسال می کند.
برای اینکه بتوانیم این داده ها را در سمت مشتری دریافت و استفاده کنیم ، روش ()Meteor.subscribe را ایجاد خواهیم کرد. در پایان مثال ، ما در حال جستجو در پایگاه داده هستیم. این کد هم در سمت سرویس گیرنده و هم در سمت سرور در حال اجرا است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var PlayersCollection = new Mongo.Collection('playersCollection'); if(Meteor.isServer) { Meteor.publish('allowedData', function() { return PlayersCollection.find(); }) } if (Meteor.isClient) { Meteor.subscribe('allowedData'); }; Meteor.setTimeout(function() { var myLog = PlayersCollection.find().fetch(); console.log(myLog); }, 1000); |
می توانیم ببینیم که داده های ما هم در کنسول توسعه دهندگان و هم در پنجره خط فرمان وارد شده است.
فیلتر کردن داده های مشتری
همچنین می توانیم بخشی از داده ها را منتشر کنیم. در این مثال ، ما داده هایی را با name = “John” منتشر می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var PlayersCollection = new Mongo.Collection('playersCollection'); if(Meteor.isServer) { Meteor.publish('allowedData', function() { return PlayersCollection.find({name: "John"}); }) } if (Meteor.isClient) { Meteor.subscribe('allowedData'); }; Meteor.setTimeout(function() { myLog = PlayersCollection.find().fetch(); console.log(myLog); }, 1000); |
پس از اجرای این کد، خط فرمان تمام داده ها را ثبت می کند ، در حالی که کنسول سمت مشتری فقط دو شی با نام John را وارد می کند.
لیست جلسات قبل آموزش Meteor
- آموزش Meteor
- معرفی Meteor
- آموزش تنظیمات محیط Meteor
- آموزش اولین برنامه Meteor
- آموزش الگوها در Meteor
- آموزش مجموعه ها در Meteor
- آموزش فرم ها در Meteor
- آموزش رویداد ها در Meteor
- آموزش جلسه در Meteor
- آموزش ردیاب در Meteor
- آموزش بسته ها در Meteor
- آموزش هسته API در Meteor
- آموزش روش چک در Meteor
- آموزش بسته Blaze در Meteor
- آموزش تایمر در Meteor
- آموزش EJSON در Meteor
- آموزش HTTP در Meteor
- آموزش ایمیل در Meteor
- آموزش Assets در Meteor
- آموزش امنیت در Meteor
- آموزش مرتب سازی در Meteor
- آموزش حساب ها در Meteor
- آموزش متد ها در Meteor
- آموزش Package.js در Meteor
دیدگاه شما