zerojs是一个基于nodejs、angularjs、git的CMS。在它之上能够继续开发出博客、论坛、wiki等相似的内容管理型系统。html
后端架构前端
zerojs 底层基于 sails。继承了 sails 三大优点:node
zerojs 的核心层包含了CMS最通用的功能,特色有三:mysql
zerojs 的扩展层基于git实现,优点:git
如下是一个基于zerojs打造的博客系统基础模块示意图:angularjs
前端架构redis
前面已经提到 zerojs 对前端提供的所有都是标准的 REST 接口,而且在 view 的渲染上支持多种方式。意味着前端彻底能够自主开发,甚至彻底抛弃掉服务器端的view层,不在同一环境也能够。这里讲的前端架构,主要是指zerojs默认提供的angular的前端架构。下面分三个前端最关心的问题来说:sql
1、如何使用默认前模块?数据库
zerojs 为"用户、节点、标签、统计"等每个主要功能都提供了一整套完善的angular模块,而且都有默认的controller。不少时候,例如新增一种节点类型如“日记”,开发者须要作的仅仅是很是简单的三步:express
即便要增长字段,都只要写模板就够了。默认模块已经通过了各类场景的锤炼,功能很是完善。若是你真是遇到很是特别,必定要本身手动处理的地方,那你仍然能够大量复用默认模块的service、filter等等。几乎全部功能都被封装到了service里。 很是值得注意的时,这些默认模块和zerojs的后端没有任何耦合!这意味着即便你要彻底换成本身的后端,只要接口标准,那么这些模块也都是可用的。
2、如何处理预加载的数据?
在作单页应用的时候,经常为了节省请求、加速第一屏显示速度而把让服务器端提早把一些数据直接渲染在页面上,例如"当前用户的基本信息","第一屏数据"等。zerojs在处理view的时候,遇到"渲染单个节点"、"渲染节点列表"都会默认将节点内容直接渲染到页面上,在angular中,引入系统默认提供的preload模块便可获取到这些数据。不过仍然不用太操心,系统提供的节点增删改查、列表渲染、单个节点渲染等默认angular模块都已经自动支持使用preload数据了。开发者仍是只要正常写模板就好。
3、前端脚本的模块依赖、打包压缩等如何处理?
这些问题都是工程问题,zerojs在生产环境会分析模板而后统一打包再注入到模板中。将来在view层可能会推出CDN模块,对前端更友好!
下面是一个基于zerojs打造的博客系统,固然,绝不客气地说要成为博客中的王者。