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打造的博客系統,固然,絕不客氣地說要成爲博客中的王者。