目录 · 12 个章节
GitHub: https://github.com/aleechou/meteor-doc-cn/blob/master/document.md
(求个NAE邀请码)
Meteor 是一个建立现代网站的极简单环境. 在过去即使使用最好的工具,也需要数周的时间,使用Meteor只需要几个小时。
Web 最早在70年代专门为大型机所设计. 应用服务器渲染完整个屏幕,然后在网络上发送给哑终端. 无论用户做什么事情,服务器都会重新渲染整个屏幕. 在过去的十几年中,这个模式在 Web 上工作得很好. 它成就了 LAMP, Rails, Django, PHP 等技术。
但是现在,一些优秀的团队,他们拥护充足的预算和时间,开始在客户端使用Javascript 构建应用程序. 这些应用程序的界面是固定的. 它们不重新载入页面. 它们具有“反应性”(reactive): 改变会从某个客户端立即显示到所有人的屏幕上.
他们构建这些采取了困难的方案. Meteor 可以使之变得非常简单和有趣. 你可以选择在周末,或是弥漫着咖啡香气的黑客聚会上,来构建一个完整的应用. 你再也不需要准备服务器资源, 在云上部署API端点, 管理数据库, 争论是否使用ORM层, 在前端JavaScript和后Ruby之间反复交换, 以及当数据失效时广播给所有客户端.
Meteor 是一项正在开展的工作, 我们希望它能够展现出我们所思考的方向. 我们乐于听到你的反馈意见.
— Geoff, Nick, Matt, David, Avital, and David
快速开始!
接下来的任务,所有的支持的平台。
安装 Meteor:
$ curl https://install.meteor.com | /bin/sh
新建一个项目:
$ meteor create myapp
在本地运行:
$ cd myapp
$ meteor
Running on: http://localhost:3000/
释放到 world (我们提供的免费服务器)上:
$ meteor deploy myapp.meteor.com
七项“纪律”
- 数据上线。不要在网络上发送HTML。发送数据,然后让客户端决定如何渲染它们。
- 统一语言。在服务器端和客户端统一使用 JavaScript 语言。
- 数据库随处可用。在客户端或服务器使用相同的透明API来访问你的数据库。
- 延迟补偿。在客户端使用预取和模型模拟,以使数据库连接看上去是零延时的。
- Full Stack Reactivity。使默认是实时的。所有的层,从数据库到模板,应该是有有效的事件驱动接口。
- 拥抱社区。Meteor 开放源代码,并且整合而不是替代已存的开源工具和框架。
- 简单等同效率。让事情看上去简单的最好的办法,就是让它根本就很简单。通过干净、经典、优美的API来达成。
开发者资源
如果 Metero 已经引起了你的兴趣,我们希望你能参与到项目中来
STACK OVERFLOW
提出(还有解答!)技术问题最好的地方就是Stack Overflow.记得在你的问题上加个“meteor”标签。
邮件列表
我们有两个邮件列表。meteor-talk@googlegroups.com 用于常见问题,请求帮助,和新项目公告。meteor-core@googlegroups.com 用于 Meteor 内部讨论和建议调整。
IRC
irc.freenode.net 上的 #meteor 频道。开发者们挂在这里随时回答你的问题,尽其所能。
GITHUB
代码放在GitHub上。为 Metero 打个补丁最好的办法,就是在 GitHub 上发送个“求拉“”请求。记录一个bug的最好方式,就是用 GitHub 的 bug tracker。
#概念 我们靠手工写单页的 JavaScript 应用。写一个完整的应用,用同一种语言(JavaScript),同一种数据格式(JSON),是一件相当有趣的事。Meteor 就是我们写这些应用所需要的全部。
构造你的应用程序
一个 Meteor 应用程序,混合了运行在客户端浏览器中的JavaScript,运行在 Meteor 服务器 Node.js 容器内的 JavaScript,以及所有 HTML 片段,CSS 规则,以及其他的静态资源。Meteor自动打包和传输这些不同内容。并且,你可以在你的文件树中相当灵活地组织这些内容。
唯一的服务器资源就是 JavaScript 。Meteor 聚合你的所有 JavaScript 文件,除了 client 和 public 子目录下的文件,然后将他们集中在一起加载到 Node.js 服务器实例中。在 Meteor 中,你的服务器端代码针对每一个请求都运行在一个单线程中,而不是典型的Node风格的异步回调函数中。我们发现在 Metero 应用程序里,线性的执行模式更适合典型的服务器代码。
考虑到客户端有很多资源。Meteor 为客户端将你目录树里所有 server 和 public 子目录以外的 JavaScript 文件聚在一起。它会最小化捆绑并发送给新访问的客户端。你可以为你的应用程序自由选择,使用一个单文件 JavaScript ,或彼此独立的文件,或者两者之间的形式。
client、server 和 tests 以外的文件,在客户端和服务器端两边都会被加载!那是定义模型和其他函数的地方。Meteor 提供了两个变量 isClient 和 isServer,这样你的代码可以根据他们是运行在客户端还是服务器来改变行为。(名为 tests 目录内的文件不会加载到任何地方。)
任何你不希望发送给客户端的代码,例如包含了密码或认证机制的代码,都应该保持在 server 目录内。
另外 CSS 文件会被集中在一起:客户端会得到一个含有你的目录树下的所有CSS文件的“捆绑”(不包括 server 和 public 子目录)。
在开发模式下,JavaScript 和 CSS 文件会为了调试方便而单独发送。
HTML文件在 Meteor 应用程序中被处理的方式和普通服务器端框架稍有不同。Meteor 扫描你目录内所有HTML文件中的3个顶层元素:,,和