Meteor

1. Meteor 包括什么:

命令行工具 meteor Command

编译器  js, coffee, less, jade, sass

运行调试环境  meteor run

部署工具和平台  Galaxy,  yourapp.meteor.com

内置移动编译平台

2. Meteor Principles :

Data on the Wire

One Language

Database Everywhere

Latency Compensation

Full Stack Reactivity

Embrace the Ecosystem : 很多Meteor 中的技术并不是自身开发的,但Meteor 

Simplicity Equals Productivity

3. 说说我理解的 Meteor : 

Meteor 是一个基于Node.js的全栈开发框架,不过也有很多人说Meteor不是框架,是一个跨平台应用解决方案平台,因为它囊括了开发一款应用程序(web or mobile)的所有方面,前端,后端,数据库。

前端使用 Javascript,这是肯定的,不同的是 Meteor 在前端有一个 miniMongo 数据库(这个数据库好像也是用Javascript写的),和后端的MongoDB 数据库通过DDP 协议建立 Socket 长连接,从而达到数据随动的效果。并且在 Meteor 这里UI的渲染,显示的逻辑等都是在前端完成的,可以说是重前端轻后端。

后端使用 Node.js,负责同步和传递客户端数据,还有操作 server 端 DB。

4.  Meteor 官方包管理: https://atmospherejs.com/

5. Meteor Code Principles:

----Code in the /server folder only runs on server.

----Code in the /client folder only runs on client.

----Everything else runs on both the client and server

----Please put all of static assets(font, images, etc) to /public directory

6.  The sequence of file is loaded ?

first be loading is which file in /lib folder

main.* file is loading after all files be loaded

others file is loading according to a-z

7. Meteor is no MVC 

8. --Use camelCase(myVariable) coding,  --Use underscores(my_file.js) for file names.  --CSS classes which use hyphens(.my-class)  

9. if you prefer Coffeescript, Meteor has you covered. $ meteor add coffeescript. you will be good to go!

10. Meteor 的强大之处在于文件的查找。无论你把代码文件放在目录下的任何地方,Meteor 都可以找到它并且正确地进行编译。这意味着你永远都不需要手动编写 JavaScript 或 CSS 文件的调用路径。

11. Spacebars 是 Meteor 附带的一个模版语言. READ GITHUB

12. Meteor 跟踪了项目目录下的所有文件,当检测到其中一个文件发生改变,Meteor 直接重启正在运行的Meteor 服务器,并通知每个客户端重新加载此页面,其实这么说时不准确的。Meteor 的动态代码重载技术(HCR)类似于页面的自动刷新但其session中的变量不变,而如果我们手动刷新页面的话,其实是开启了一个新的session。

13. Meteor 的核心功能就是服务器端和客户端的自动数据同步,我们要仔细了解一下它是如何运作的,以及研究那个让它得以运行的关键技术: Meteor 集合(Collection)。

网络应用有三种基本方式保存数据,各种方式有不同的角色:

--浏览器内存:

    像 JavaScript 变量的这些数据会保存在浏览器内存中,意味着他们不是永久性的:它们存在于当前浏览器标签中,当标签关闭后它们会消失。

--浏览器存储:

    浏览器也可存储较为永久性的数据,使用 cookies 或本地存储 Local Storage (http://diveinto

html5.info/storage.html)。虽然数据会在不同 session 间保持,但是只是针对于当前用户(包括标签之

间)但不能轻易地共享给其他用户。

--服务器端数据库:

    你想永久保存数据并且提供给多个用户的最好方法是数据库(MongoDB 是 Meteor 应用默认的方案)。



不在client/或server/文件夹中代码会在客户端和服务器端运行。所以Posts集合在客户端和服务器端都可

用。但是,在各自环境下所起的作用有很大不同。

在服务器,集合有一个任务就是和 Mongo 数据库联络,读取任何数据变化。 在这种情况下,它可以比对标准的数据库。

在客户端,集合是一个安全拷贝来自于实时一致的数据子集。客户端的集合总是(通常)透明地实时更新数据子集。


$ meteor shell   服务器端shell

$ meteor mongo  数据库控制台

如果你把应用部署到了*.meteor.com 上,你一样可以通过 meteor mongo myApp 的方式进入你应用的 Mongo Shell,而且还可以输入 meteor logs myApp 得到你应用的 log 日志

Meteor 的客户端 Mongo 的技术实现被成为 MiniMongo


在 Meteor 中,find() 返回值是一个游标。游标是一种从动数据源.如果你想输出内容,你可以对游标使用 来把游标转换成数组。Meteor 十分智能地在应用中保持游标状态而避免动不动就把游标变成数组。这就造成了你不会经常在 Meteor代码中看到 fetch() 被调用。


这里我们要提到一个包 autopublish, 我们一直依赖于 autopublish 来让我们的客户端可以镜像般地得到数据库中的所有帖子,也就是说,它简单的把整个Collection分享给所有连接的客户端。最终我们需要做的是仅仅把我们客户端需要看到的帖子传输过来。

首先删除掉 autopublish 包 :  $ meteor remove autopublish

建立 server/publications.js 并定义publish() 函数 :  Meteor.publish('posts', function(){ return Posts.find() });

在客户端订阅这个发布 $  vi main.js ---> Meteor.subscribe('posts');

安全检验(用户登录权限控制等)已经集成在 Meteor 的 Collection 中,只是在默认情况下它是关闭的。这样的设置可以使你在􏰂开始构建 App 的时候更加轻松。我们的 App 不再需要这些辅助了,果断扔掉吧!我们去删除insecure 包(恢复数据安全)  $  meteor remove insecure.


audit-argument-checks 包用于增强安全性检验,对post参数做检验,还需要check包

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容