Meteor基础模型
来源:互联网 发布:幸运28大小算法 编辑:程序博客网 时间:2024/05/20 05:10
初入Meteor,定义好Collection之后,前后端均可以按mongo语法进行CRUD,这是因为每一个新项目均自动添加了insecure和autopublish两个包。按照官网的说法,这两个包可以帮助你快速地构建原型,但是在产品中,这是不安全的。因此,如果需要构建产品,一般都直接移除掉这两个包。那么没有这两个包之后,Meteor的基本模型是怎样的呢?本文在没有这两个包的情况下,尽力阐述Meteor的基本模型,在这之后解释这两个包的作用,就十分清楚了(它们为什么可以帮助你快速地构建原型)。
Collection是Meteor创建的模型,本质上就是Mongodb的collection。创建collection之后,后端代码就可以直接使用<collection>.<method>进行操作了,其中,<method>是mongodb的对应操作,如find, insert等。
这时,前端并不能直接访问这些模型(集合),于是需要引入publish/subscribe模式。首先,后端publish某些collection的子集,注意是collection的子集,比如publish 'tasks'时,return Tasks.find(...)。然后,前端subscribe需要的集合,比如subscribe 'tasks',然后前端就可以访问这些集合了,比如Tasks.find(...),注意,前端调用端时候用的是collection名称Tasks,而不是订阅时的tasks。
如上所述,前端可以操作的Tasks,实际上是后端publish出来的Tasks的子集。即使这时,前端仍然只能对订阅的集合进行查询(find),而不能修改(insert, remove, update)。
如果要允许前端直接修改集合,需要配合collection的allow方法。allow方法控制insert, remove, update的调用权限,当在给定环境下,对应的控制函数返回true的时候,前端即可以执行该操作。比如,allow里的insert函数,如果返回user.isRoot,那么之后当前用户是root的时候才能执行。
要允许前端修改集合,另一个更常用的方法是使用methods。methods是公共代码,前后端均可以调用,并且在methods中可以对集合进行完整的CRUD。
在这基础之上,现在解释autopublish和insecure包的作用。autopublish,顾名思义,就是将所有定义的集合自动publish,前端自动subscribe。而insecure包,就使得前端可以不通过allow或methods就直接调用collection的修改类代码。
综上,就Meteor的基础模型,首先,定义collection,然后,publish/subscribe需要的子集(可以查询),然后,定义methods(可以修改)。
- Meteor基础模型
- 【转换模型+扫描线】【UVA1398】Meteor
- meteor
- meteor
- Meteor
- 实时开发框架Meteor基础入门系列<零>--简介
- 模型基础
- 基础模型
- meteor.js
- 3905 - Meteor
- uva1398 - Meteor
- Uva1398 Meteor
- Meteor Shower
- 初识Meteor
- meteor安装
- Meteor Start
- 初识meteor
- Meteor 路由
- 第4周项目3-用对象数组操作长方柱类
- Android 多线程与Java多线程比较 有哪些区别
- ant初识(二)
- 【LeetCode】Word Break 动态规划
- Android线程和Timer的销毁
- Meteor基础模型
- 安卓中出现xml文件错误或是R文件消失的几种常见错误
- 基于Qt ECG 心电数据的读取!
- Sublime安装package control及其插件
- 《码农周刊》干货精选(Android + iOS 篇)
- Android 中的 Service 全面总结
- UVa1641 - ASCII Area
- C/C++中的STL函数库
- 【书籍-《定位》】定位的全面性