zerojs是一個基于nodejs、angularjs、git的CMS。在它之上可以繼續(xù)開發(fā)出博客、論壇、wiki等類似的內(nèi)容管理型系統(tǒng)。
后端架構(gòu) zerojs 底層基于 sails。繼承了 sails 三大優(yōu)勢:
zerojs 的核心層包含了CMS最通用的功能,特點有三:
zerojs 的擴展層基于git實現(xiàn),優(yōu)勢:
以下是一個基于zerojs打造的博客系統(tǒng)基礎(chǔ)模塊示意圖:
前端架構(gòu) 前面已經(jīng)提到 zerojs 對前端提供的全部都是標準的 REST 接口,并且在 view 的渲染上支持多種方式。意味著前端完全可以自主開發(fā),甚至完全拋棄掉服務器端的view層,不在同一環(huán)境也可以。這里講的前端架構(gòu),主要是指zerojs默認提供的angular的前端架構(gòu)。下面分三個前端最關(guān)心的問題來講: 一、如何使用默認前模塊? zerojs 為"用戶、節(jié)點、標簽、統(tǒng)計"等每一個主要功能都提供了一整套完善的angular模塊,并且都有默認的controller。很多時候,例如新增一種節(jié)點類型如“日記”,開發(fā)者需要做的僅僅是非常簡單的三步:
即使要增加字段,都只要寫模板就夠了。默認模塊已經(jīng)經(jīng)過了各種場景的錘煉,功能非常完善。如果你真是遇到非常特別,一定要自己手動處理的地方,那你仍然可以大量復用默認模塊的service、filter等等。幾乎所有功能都被封裝到了service里。 非常值得注意的時,這些默認模塊和zerojs的后端沒有任何耦合!這意味著即使你要完全換成自己的后端,只要接口標準,那么這些模塊也都是可用的。 二、如何處理預加載的數(shù)據(jù)? 在做單頁應用的時候,常常為了節(jié)省請求、加速第一屏顯示速度而把讓服務器端提前把一些數(shù)據(jù)直接渲染在頁面上,例如"當前用戶的基本信息","第一屏數(shù)據(jù)"等。zerojs在處理view的時候,遇到"渲染單個節(jié)點"、"渲染節(jié)點列表"都會默認將節(jié)點內(nèi)容直接渲染到頁面上,在angular中,引入系統(tǒng)默認提供的preload模塊即可獲取到這些數(shù)據(jù)。不過仍然不用太操心,系統(tǒng)提供的節(jié)點增刪改查、列表渲染、單個節(jié)點渲染等默認angular模塊都已經(jīng)自動支持使用preload數(shù)據(jù)了。開發(fā)者還是只要正常寫模板就好。 三、前端腳本的模塊依賴、打包壓縮等如何處理? 這些問題都是工程問題,zerojs在生產(chǎn)環(huán)境會分析模板然后統(tǒng)一打包再注入到模板中。未來在view層可能會推出CDN模塊,對前端更友好!
下面是一個基于zerojs打造的博客系統(tǒng),當然,毫不客氣地說要成為博客中的王者。 |
|