- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Meteor 集合
集合
在第⼀章我们提到了 Meteor 的核⼼功能, 那就是服务器端和客户端的⾃动数据同
步
在这⼀章我们要仔细了解⼀下它是如何运作的,以及研究那个让它得以运⾏的关键技
术: Meteor 集合 (Collection )
集合是⼀个特殊的数据结构,它将你的数据存储到持久的、服务器端的 MongoDB 数
据库中,并且与每⼀个连接的⽤户浏览器进⾏实时地同步
我们想让我们的 post 永久保存并且要在⽤户之间共享,所以我们⼀开始要新建⼀个叫
做 Posts 的 collection 来保存它们
我们现在做⼀个社交新闻应⽤, 所以第⼀件事⼉就是做⼀个⼈们贴上来的帖⼦的连接
列表 我们叫它 post
很⾃然, 我们需要把它们存起来 Meteor 捆绑了 MongoDB 运⾏在服务器上作为持
久化存储
因此,尽管⼀个⽤户在浏览器上有各种状态(⽐如他们正在阅读哪⼀页, 或者正在输
⼊那⼀条评论) , ⽽服务器上,尤其是 Mongo ,保存的是永久保留的⼀致数据 说到
⼀致, 我们是指对于所有⽤户来说都是⼀样的数据: 每个⽤户也许在看不同的页⾯,
但是帖⼦ Post 的主列表对所有⽤户来说却始终是⼀样的
这些数据在Meteor 中被存储在集合 (Collection )中 集合是⼀种特殊的数据结构,
通过发布 (publications )和订阅 (subscriptions )机制把数据实时同步上⾏或者下⾏到
连接着的各个⽤户的浏览器或者Mongo数据库中 让我们看看如何做到的
我们希望我们的帖⼦Post可以持久存储并分享给⽤户们, 所以我们⼀开始就要建⽴⼀
个叫 Posts 的集合来存储他们 如果你还没有在根⽂件夹建⽴⼀个叫做
collections/ 的⽂件夹, 并在⾥⾯放⼀个 posts.js 的⽂件的话,那现在就加
上
Posts = new Mongo.Collection(posts);
增加⼀个 post 集合
代码所在的⽬录既不是 client/ 也不是 server/ 所以 Posts 会共同存在运⾏在服
务器和客户端 然⽽,这个集合的使⽤在两种环境下⼗分不同
要 Var 还是不要 Var?
在 Meteor 中,关键字 var 限制对象的作⽤域在⽂件范围内 我们想要 Posts 作⽤
于整个应⽤范围内,因此我们在这⾥不要 Var 这个关键字
存储数据
⽹络应⽤有三种基本⽅式保存数据,各种⽅式有不同的⾓⾊:
浏览器内存:像 JavaScript 变量的这些数据会保存在浏览器内存中,意味着他
们不是永久性的:它们存在于当前浏览器标签中,当标签关闭后它们会消失
浏览器存储:浏览器也可存储较为永久性的数据,使⽤ cookies 或本地存储
Local Storage 虽然数据会在不同 session 间保持,但是只是针对于当前⽤户
(包括标签之间)但不能轻易地共享给其他⽤户
服务器端数据库:你想永久保存数据并且提供给多个⽤户的最好⽅法是数据库
(MongoDB 是 Meteor 应⽤默认的⽅案)
Meteor 使⽤所有三种⽅式,有时会从⼀个地⽅同步数据到另⼀个地⽅ (我们会马上看
到) 话虽如此,数据库仍然是包含数据主副本的“规范化的”数据源
客户端与服务器
不在 client/ 或 server/ ⽂件夹中代码会在客户端和服务器端运⾏ 所以 Posts
集合在客户端和服务器端都可⽤ 但是,在各⾃环境下所起的作⽤有很⼤不同
在服务器,集合有⼀个任务就是和 Mongo 数据库联络,读取任何数据变化 在这种
情况下,它可以⽐对标准的数据库
在客户端,集合是⼀个安全拷贝来⾃于实时⼀致的数据⼦集 客户端的集合总是 (通
常)透明地实时更新数据⼦集
Console ,Console 与 Console
在这⼀章,我们开始使⽤浏览器控制台,不过不要和终端、Meteor Shell 或者 Mongo
Shell 搞混了 现在对它们做个⽐对
终端命令
由操作系统启动
服务器端 console.log() 会输出到这⾥
有 $ 提⽰符
通常也被成为外壳程序 S ell ,Bas
浏览器控制台
在浏览器内启动,执⾏ Javascript 代码
客户端的 console.log() 会
您可能关注的文档
最近下载
- 蒸压加气混凝土砌块施工技术课件.ppt VIP
- 沥青路面再生利用项目可行性研究报告项目建议书.docx
- 医学课件-老年卧床患者压力性损伤的预防和护理进展.pptx
- 电力系统经济学原理习题解答 全.doc VIP
- 数据中心机房工程施工组织设计方案.pptx VIP
- 传统文化与修身(鲁东大学)知到智慧树章节答案.docx VIP
- 湖南文艺出版社(2024)新教材小学二年级音乐上册第五课《草原就是我的家》精品课件.pptx VIP
- 益智课堂数字华容道教学课件.pptx VIP
- (2025秋新版)部编版二年级道德与法治上册《第8课 我为班级作贡献》教案.docx VIP
- 尼科尔森《微观经济理论-基本原理与扩展》(第9版)课后习题详解(第18章--不确定性和风险厌恶).doc VIP
文档评论(0)