首页 > 其他分享 >无涯教程-Meteor - 发布和订阅

无涯教程-Meteor - 发布和订阅

时间:2023-10-09 21:32:17浏览次数:29  
标签:教程 myLog PlayersCollection 无涯 Meteor 客户端

正如"Collections集合"一章中已经讨论的那样,无涯教程所有的数据都可以在客户端获得,这是一个安全问题,可以使用发布和订阅方法来处理。

删除自动发布

在此示例中,无涯教程将使用 PlayersCollection 集合以及以下数据,在能够专心于本章本身之前,无涯教程已经准备好了此系列。如果不确定如何在Meteor应用程序中创建MongoDB集合,请查看无涯教程的集合一章。

Meteor Publish and Subscribe Database Data

为了保护无涯教程的数据,无涯教程需要删除允许无涯教程在客户端使用数据的 autopublish 软件包。

C:\Users\username\Desktop\meteorApp>meteor remove autopublish

完成此步骤后,无涯教程将无法从客户端获取数据库数据,无涯教程只能在命令提示符窗口中从服务器端看到它。

meteorApp.js

var PlayersCollection = new Mongo.Collection('playersCollection');
var myLog = PlayersCollection.find().fetch();
console.log(myLog);

命令提示符窗口将显示带有四个对象的整个集合,而开发者控制台将显示一个空数组。现在无涯教程的应用程序更加安全。

Meteor Publish and Subscribe Autopublish Removed

使用发布和订阅

假设无涯教程要允许客户使用无涯教程的数据,为此,无涯教程需要在服务器上创建 Meteor.publish()方法,此方法会将数据发送到客户端。

为了能够在客户端接收和使用该数据,无涯教程将创建 Meteor.subscribe()方法,在示例的最后,无涯教程正在搜索数据库,此代码在客户端和服务器端均运行。

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);

无涯教程可以看到无涯教程的数据同时记录在开发者控制台和命令提示符窗口中。

Meteor Publish and Subscribe Allowed All

过滤客户端数据

无涯教程还可以发布部分数据。在此示例中,无涯教程使用 name =" Learnfk" 发布数据。

var PlayersCollection = new Mongo.Collection('playersCollection');

if(Meteor.isServer) {

   Meteor.publish('allowedData', function() {
      return PlayersCollection.find({name: "Learnfk"});
   })
}

if (Meteor.isClient) {
   Meteor.subscribe('allowedData');
};

Meteor.setTimeout(function() {
   myLog = PlayersCollection.find().fetch();
   console.log(myLog);
}, 1000);

一旦运行此代码,命令提示符将记录所有数据,而客户端控制台将仅记录两个名称为 Learnfk 。

Meteor Publish and Subscribe Allowed All

参考链接

https://www.learnfk.com/meteor/meteor-publish-subscribe.html

标签:教程,myLog,PlayersCollection,无涯,Meteor,客户端
From: https://blog.51cto.com/u_14033984/7781314

相关文章

  • Flask2.0基础教程
    Flask基础Flask介绍参考:Flask官方文档Flask是一个用Python编写的轻量级Web应用框架。它的核心非常简单,但是可以通过各种插件来扩展,使其可以用来构建复杂的Web应用。Flask的设计目标是保持核心简单且易于使用,同时能够被扩展以适应不同的应用需求。Flask框架主要特点......
  • 无涯教程-Meteor - Assets
    静态服务器assets位于应用程序内的private私有子文件夹中。在以下示例中,无涯教程将学习如何使用简单JSON文件中的数据。第1步-创建文件夹让无涯教程创建一个私有文件夹和该文件夹内的my-json.json文件,无涯教程将在命令提示符窗口中使用以下命令来执行此操作,但是,您也可以......
  • 无涯教程-Meteor - 电子邮件
    当您需要从MeteorApp发送电子邮件时,可以使用此软件包。步骤1-新增包打开命令提示符窗口并运行以下命令-C:\Users\username\Desktop\meteorApp>meteoraddemail步骤2-Mailgun帐户无涯教程需要在此处创建一个帐户,这是Meteor应用程序的默认电子邮件提供商。登录后,打开......
  • XSD(Schema)教程
    XSD(Schema)教程schema教程XMLSchema是以XML语言为基础的,它用于可替代DTD。一份XMLschema文件描述了XML文档的结构XMLSchema语言也被称为XMLSchemaDefinition(XSD)(XMLSchema定义).在本章教程你将学习如何读取和建立XMLSchemas,以及为什么XMLSchemas比DTDs的功能更为......
  • 【图文详解】入职必备——SVN使用教程_公司新人svn使用教程_长头发的程序猿的博客-CSD
    已剪辑自:https://blog.csdn.net/weixin_55076626/article/details/128121980......
  • 无涯教程-Meteor - 检测(Check)
    check方法用于确定参数或类型是否与模式匹配。安装检查包打开命令提示符窗口并安装软件包。C:\Users\username\Desktop\meteorApp>meteoraddcheck使用检查在下面的示例中,无涯教程要检查myValue是否为字符串。既然如此,该应用程序将继续运行而不会出现任何错误。meteorAp......
  • 无涯教程-Meteor - Session
    Session会话用于在用户使用应用程序时保存数据,用户离开应用程序后,该数据将被删除。在本章中,无涯教程将学习如何设置Session会话对象,存储一些数据并返回该数据。meteorApp.html<head><title>meteorApp</title></head><body><div>{{>myTemplate}}</div>......
  • PyQT5 PyQT入门教程(之三)
    REFhttp://code.py40.com/pyqt5/22.html 事件Event所有的GUI程序都是事件驱动的。事件主要由用户触发,但也可能有其他触发方式:例如网络连接、windowmanager或定时器。当我们调用QApplication的exec_()方法时会使程序进入主循环。主循环会获取并分发事件。在事件模型中,有三个参与......
  • PyQT5 PyQT入门教程(之二)
    REFhttps://www.jianshu.com/p/3832eb48f3d5 布局(Layout)管理QtDesigner中,在工具箱中最上方可以看到有4种布局。分别是垂直布局、水平布局、栅格布局和表单布局。  四种布局布局名称   布局含义垂直(Vertical)布局   布局内的控件按照从上到下的顺序纵向排列水平(Horizon......
  • PyQT5 PyQT入门教程(之一)
    REFhttps://www.jianshu.com/p/5b063c5745d0 本篇博客对应的视频讲解:https://www.bilibili.com/video/BV1NZ4y1Z7ue/ QtDesigner的介绍在PyQt中编写UI界面可以直接通过代码来实现,也可以通过QtDesigner来完成。QtDesigner的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现......