ocframework

蜂巢(OpenComb)

蜂巢(OpenComb)不只是一个 Node.js 的开发框架。

它们都是流行的开源项目,支持几乎所有平台,安装也很简单,你可以直接访问它们的主页,或google。

在开始使用蜂巢以前,你需要花10分钟准备好蜂巢依赖的环境。

~/opencomb 目录下部署蜂巢:

git clone git@github.com:OpenComb/OpenComb.git opencomb

安装蜂巢的依赖:

cd opencomb && npm i

安装一个 blog 扩展

npm i ocxblog

启动 mongodb

mongod &

启动蜂巢

node index.js

在浏览器里访问 url http://127.0.0.1:6060


特性

  • 最小程度更新网页,而不是刷新整个网页
  • 服务器仅向前端传送数据
  • 支持浏览器的History和地址栏
  • 对搜索引擎友好,不干扰SEO
  • 控制器(以及视图)能够自由组合
  • 模板引擎在后端支持jQuery操作
  • AOP
  • 完全基于扩展
  • 响应式布局(Responsive Layout)
  • 内容协商(Content Negotiation)
  • 兼容 PC/移动设备 的不同屏幕尺寸和体验

蜂巢是一个完全基于扩展的Web框架,用户可以通过安装扩展来搭建一个网站或Web App。

  • 一切皆扩展

开发者通过开发扩展来为蜂巢提供功能和内容,这些扩展便于分发,和在其他蜂巢系统里安装。

  • 对扩展进行扩展

扩展还能够“改变”其他扩展的行为。 当你需要的扩展和你的需求并不完全一致时,你可以写一个新的扩展,来“修改”、“重塑”原有扩展的行为,而不是直接修改他的源代码。

  • 蜂巢的模板引擎支持在后端运行jQuery,这使你能够用 $ 来操作其他扩展提供的模板中的内容

  • 蜂巢提供的AOP机制,允许你对代码中的任何函数进行“切入”操作(即使是匿名函数),在目标函数的之前、之后,以及外围执行你提供的代码。

  • “依赖注入”保证了整个系统都是可以“被管理”的。

这些机制的 API 安全、简单,容易调用和调式;而且还“绿色环保”:只有当你的扩展被安装后他们才生效;扩展被移除(删除扩展目录即可),所有的效果就会还原。

在蜂巢的MVC模式中,一个控制器对应一个视图 , 网页是由视图组成的,控制器的 layout 和 children 属性用于关联其他控制器,通过这种方式,控制器就“聚合”成一颗“树”,而他们的视图也会自动组合,最后“拼合”成一个完整的网页。

所有网页都是由控制器(及其视图)组成的,这意味着你可以:

  • 向任意网页添加控制器

  • 用来自不同网页的控制器,重新组成一个新的网页

蜂巢的控制器保持极高的内聚性,和低耦合度,是为了可以重复使用和组合而设计的。

蜂巢是一个“面向二次开发”的框架,你可以通过安装各种扩展来构建一个“接近”的系统,然后创建新的扩展实现剩下的功能,而不是每个项目都从0开始。

蜂巢的扩展机制允许你:

  • 在自己开发的网页里,引用其他的扩展里的控制器

  • 将自己写的控制器,添加到其他扩展的网页里

  • 让某个网页里的视图重新布局

  • 用 jQuery 控制任何扩展的模板

  • 将你的代码,通过 AOP 机制“切入”到任何地方

于是,你可以:往某个导航菜单里增加一项内容;在你看中的地方插入一个banner;往某个CMS的内容表单里面增加几项特殊的字段;不喜欢blog扩展使用的富文本编辑器?那就换一个。

完成以上的任务,你都没有“改动”源代码。所以,你能够将这些“改进”打包成一个新扩展,然后发布出去,分享给所有人;

反过来讲,你可以安装别人发布的扩展,以及更多“增强”的扩展。


文档

  1. 如何开始

  2. 控制器

  3. 视图和模板

    • [二次开发]“模板编织”
  4. 数据库

  5. Session

  6. 扩展

  7. AOP

  8. [高级] 扩展框架

    • 增加前端框架入口文件
    • 模板引擎的 parser 和 shader