DoraCMS開發(fā)指南
DoraCMS開發(fā)指南

一、 DoraCMS 安裝
1.1 安裝nodejs
1.2 安裝Mongodb。
1.3 運行DoraCMS
1.3.1啟動mongodb
1.3.2 插入初始數(shù)據(jù)
1.3.3運行DoraCMS
1.3.4 訪問地址
二、 DorCMS 開發(fā)
2.1 配置文件
2.2 關(guān)于路由
2.3 關(guān)于模板
2.4 實體類
2.5 用到的插件
2.6 關(guān)于編碼
三、總結(jié)
四、FAQ
一、DoraCMS 安裝
1.1 安裝nodejs
DoraCMS 是基于Nodejs 開發(fā)的,所以要想正常運行DoraCMS 需要nodejs環(huán)境。在Nodejs官網(wǎng)(https://nodejs.org/) 根據(jù)電腦版本下載對應(yīng)的安裝文件進(jìn)行安裝,安裝完成后,打開命令窗口執(zhí)行 node -v,如果出現(xiàn)版本號,證明安裝成功。我的電腦是64位版本,安裝了重啟之后才生效。
1.2 安裝Mongodb。
DoraCMS 使用的是Mongodb 的數(shù)據(jù)庫,至于Mongodb 的特點和nosql的優(yōu)勢在此就不做詳細(xì)描述了。安裝方法很簡單,到官網(wǎng) (https://www.mongodb.org/) 下載對應(yīng)版本,直接安裝就可以了。這里有一點需要注意的是,如果你安裝在D盤,安裝完成后,在D盤根目錄下創(chuàng)建文件夾 data ,不然啟動mongo會提示數(shù)據(jù)庫路徑錯誤,當(dāng)然你也可以通過命令啟動mongodb來指定數(shù)據(jù)庫的路徑,如果你不想麻煩,就照我說的處理就可以了。
1、在本地盤建立一個文件夾(最好英文名稱),通過svn checkout 出DoraCMS的代碼,項目地址:https://git.oschina.net/doramart/DoraCMS,svn地址:svn://git.oschina.net/doramart/DoraCMS ,完成后代碼結(jié)構(gòu)如下:
注:.idea 不屬于項目文件夾,為webstorm 工程文件,不必理會。
1.3 運行DoraCMS
1.3.1啟動mongodb
找到mongodb安裝目錄下bin文件夾,執(zhí)行 mongod.exe
1.3.2 插入初始數(shù)據(jù)
在《DoraCMS操作指南》 中有提到插入初始管理數(shù)據(jù),因為剛安裝的數(shù)據(jù)是空的,需要插入初始數(shù)據(jù)來管理后臺,這里重新介紹一次:
①、找到Mongodb安裝目錄(MongoDBServer3.0bin) 執(zhí)行 mongo.exe
②、輸入 use doracms
③、插入用戶組數(shù)據(jù):
db.admingroups.insert({ "_id":"4yTbsWiI", "name":"超級管理員", "power":"{"sysTemManage_0_1":true,"sysTemManage_0_2":true,"sysTemManage_0_3":true,"sysTemManage_0_4":true,"sysTemManage_0_5":true, "contentManage_1_1":true,"contentManage_1_2":true,"contentManage_1_3":true,"userManage_2_1":true,"projectManage_3_1":true, "projectManage_3_2":true,"projectManage_3_3":true,"contentManage_1_4":true,"contentManage_1_5":true,"sysTemManage_0_6":true, "contentManage_1_6":true}", "date":ISODate("2015-06-30T08:04:46.092Z"), "__v":0 })
④、插入用戶數(shù)據(jù):
db.adminusers.insert({ "_id":"E1jNjZi8", "name":"test", "username":"test", "password":"581fbebb8a5f5827", "phoneNum":12358563215.0, "email":"doramart@qq.com", "group":"4yTbsWiI", "comments":"doramart", "logo":"/upload/images/defaultlogo.png", "date":ISODate("2015-06-18T01:17:15.007Z"), "__v":0 })
⑤、插入數(shù)據(jù)如果存在格式問題,需要在記事本里編輯一下。如果上述執(zhí)行正常,那么默認(rèn)的登錄名和密碼為 test / 000000 ,這樣,您就可以正常登錄后臺了。
1.3.3運行DoraCMS
在剛剛svn下載的代碼目錄下 調(diào)出cmd命令窗口,執(zhí)行npm start
如果沒有報錯,證明運行成功了。
注意:DoraCMS 指定了默認(rèn)端口號為80,如果您的機器已經(jīng)占用了80端口,這里會報錯,如果想修改默認(rèn)端口號,可以到代碼的bin目錄下 www 文件修改,當(dāng)然修改完成,訪問路徑記得帶上端口號:
至此,doraCMS就運行起來了
1.3.4 訪問地址
前臺:127.0.0.1 (默認(rèn)80端口)
后臺:127.0.0.1/admin
二、DorCMS 開發(fā)
2.1 配置文件
DoraCMS 的主要配置在 settings.js 中設(shè)置(/onlineCMS/models/db/settings.js):
//數(shù)據(jù)庫配置 COOKIE_SECRET:\'doramart.com\', URL:\'mongodb://127.0.0.1:27017/doracms\', DB:\'doracms\', HOST:\'127.0.0.1\',//數(shù)據(jù)庫地址 PORT:27017,//數(shù)據(jù)庫端口號 USERNAME:\'doracms\',//數(shù)據(jù)庫用戶名 PASSWORD:\'000000\',//數(shù)據(jù)庫密碼 //站點基礎(chǔ)信息配置 SITETITLE:\'前端開發(fā)俱樂部\',//站點名稱 SITEDOMAIN:\'http://www.html-js.cn\',//站點域名 SITEICP:\'粵ICP備111111號-2\',//站點備案號 SYSTEMMAIL:\'xxxx@163.com\',//站點郵箱 UPDATEFOLDER:process.cwd()+\'/public/upload\',//默認(rèn)上傳文件夾本地路徑 TEMPSFOLDER:process.cwd()+\'/views/web/temp\',//默認(rèn)模板文件夾本地路徑 DATAOPERATION:process.cwd()+\'/models/db/bat\',//數(shù)據(jù)庫操作腳本目錄 DATABACKFORDER:\'C:/softbak/xxxx/\',//服務(wù)端數(shù)據(jù)庫操作腳本目錄 CMSDISCRIPTION:\'前端開發(fā)俱樂部,分享前端知識,豐富前端技能。匯集國內(nèi)專業(yè)的前端開發(fā)文檔,為推動業(yè)內(nèi)前端開發(fā)水平共同奮斗。html,js,css,nodejs,前端開發(fā),jquery,web前端,web前端開發(fā),前端開發(fā)工程師\', SITEKEYWORDS:\'前端開發(fā)俱樂部,前端俱樂部,DoraCMS內(nèi)容管理系統(tǒng),前端開發(fā),web前端,web前端開發(fā),前端開發(fā)工程師,設(shè)計,開發(fā),前端資源,angularjs,JavaScript,js,Ajax,jQuery,html,html5,css3,瀏覽器兼容,前端開發(fā)工具,nodejs,node,boostrap\', SITEBASICKEYWORDS:\'前端開發(fā)俱樂部,前端開發(fā),前端俱樂部,DoraCMS\',//基礎(chǔ)關(guān)鍵詞 STATICFILEPATH:\'\',//靜態(tài)文件空間地址 UPDATEFILEPATH:\'\',//上傳文件空間地址 QINIUACCESS_KEY:\'\',//七牛秘鑰 QINIUSECRET_KEY:\'\',//七牛秘鑰 QINIUCMSBUCKETNAME:\'\',//七牛Bucket_Name
針對上面這些靜態(tài)參數(shù)都進(jìn)行了詳細(xì)的注釋,如果你設(shè)置了數(shù)據(jù)庫賬號密碼,則需要在這里做相應(yīng)的配置,同時需要在 Dbopt.js 中做相應(yīng)的數(shù)據(jù)庫連接設(shè)置。
Settings.js 中有四個參數(shù)需要注意一下:
UPDATEFOLDER:process.cwd()+\'/public/upload\',//默認(rèn)上傳文件夾本地路徑 TEMPSFOLDER:process.cwd()+\'/views/web/temp\',//默認(rèn)模板文件夾本地路徑 DATAOPERATION:process.cwd()+\'/models/db/bat\',//數(shù)據(jù)庫操作腳本目錄
上面三個參數(shù)原則上不用修改,UPDATEFOLDER 指定上傳文件的目錄,TEMPSFOLDER 為指定的模板文件夾,DATAOPERATION 為執(zhí)行數(shù)據(jù)備份的腳本目錄文件夾
DATABACKFORDER:\'C:/softbak/xxxx/\',//服務(wù)端數(shù)據(jù)庫操作腳本目錄
DATABACKFORDER 指定數(shù)據(jù)備份的本地路徑。
下面的配置都是后臺模塊的靜態(tài)參數(shù):
SYSTEMMANAGE:\'sysTemManage_0\',//后臺模塊(系統(tǒng)管理) ADMINUSERLIST:\'sysTemManage_0_1\', ADMINGROUPLIST:\'sysTemManage_0_2\', EMAILTEMPLIST:\'sysTemManage_0_3\', ADSLIST:\'sysTemManage_0_4\', FILESLIST:\'sysTemManage_0_5\', DATAMANAGE:\'sysTemManage_0_6\',//數(shù)據(jù)管理 BACKUPDATA:\'sysTemManage_0_6_1\',//數(shù)據(jù)備份 CONTENTMANAGE:\'contentManage_1\',//后臺模塊(內(nèi)容管理) CONTENTLIST:\'contentManage_1_1\', CONTENTCATEGORYS:\'contentManage_1_2\', CONTENTTAGS:\'contentManage_1_3\',//標(biāo)簽管理 CONTENTTEMPS:\'contentManage_1_4\',//模板管理 CONTENTTYPES:\'contentManage_1_5\',//內(nèi)容屬性管理 CONTENTFILMTYPES:\'contentManage_1_5_1\',//內(nèi)容屬性管理 CONTENTCOUNTRYTYPES:\'contentManage_1_5_2\',//內(nèi)容屬性管理 CONTENTYEARSTYPES:\'contentManage_1_5_3\',//內(nèi)容屬性管理 MESSAGEMANAGE:\'contentManage_1_6\',//留言管理 USERMANAGE:\'userManage_2\',//后臺模塊(會員管理) REGUSERSLIST:\'userManage_2_1\'
改參數(shù)對應(yīng)后臺模板文件 adminTemp.ejs 中的模塊列表的:
也就是說,如果新增模塊,需要在配置文件(settings.js) 和 adminTemp.ejs 中配置相應(yīng)的cid。
這個屬性是權(quán)限控制需要的,除此之外,加入新模塊后,需要在權(quán)限管理模塊加入新模塊,并配置對應(yīng)的cid
2.2 關(guān)于路由
DoraCMS 中所有的請求都是通過nodejs的路由來處理的,原理類似于java中的 struts 。
路由文件在routes文件夾下:
Admin.js , 后臺所有模塊管理路由
Content.js 前臺文檔相關(guān)
Index.js 首頁相關(guān)(也包含文檔列表和文檔相親)
System.js 系統(tǒng)操作的相關(guān)路由 (比如文件上傳、郵件發(fā)送等)
Users.js 用戶中心的相關(guān)請求走這里
Validat.js 后臺權(quán)限控制(沒有授予管理權(quán)限(session)會直接過濾掉請求)
2.3 關(guān)于模板
DoraCMS 是基于ejs 模板引擎來表現(xiàn)前臺頁面的,選擇ejs 是因為比jade更好理解一些。屬性js的童鞋也好接受ejs的語法來展示數(shù)據(jù)。DoraCMS 的模板文件都在 views 文件夾下:
解析:
1、views 下的 index.ejs 為首頁主體內(nèi)容,sitemap.ejs 是站點地圖的主體內(nèi)容,sitemap.ejs是展示給用戶看的,不需要手動更新。
2、Web 為前臺的所有模板文件,web根目錄下的 do404.ejs, do505.ejs , dosuccess.ejs 是處理操作過程結(jié)果反饋的模板,這些是普遍需要用到的。
3、Users 是用戶相關(guān)頁面模板。
4、Temp中包含了公共header和footer,以及文檔模板,aboutMe、blog、lab 都屬于文檔模板,可以根據(jù)自己的需要自行添加。
5、public 文件夾中的模板暫時沒用到。
6、Manage 里是后臺的所有頁面模板,adminTemp.ejs 是模板外殼,里面包含了各個模塊列表和一些公共的引用。
7、public 文件夾下是公共目錄,主要放置靜態(tài)文件,包括前臺和后臺的靜態(tài)js,css,以及DoraCMS 用到的jquery插件等。Public 下的文件都是公開的,在app.js 中設(shè)置。
2.4 實體類
這里稱為“實體類”可能有些不妥,在java中,這部分確實就叫實體類,代表每個對象所具有的屬性,文件存放于models 文件夾中。
每個對象都有詳細(xì)注釋,開發(fā)者自己去查看就可以了。
2.5 用到的插件
開發(fā)過程中,很多功能并不是自己寫的,用到了npm上比較優(yōu)秀的一些插件,在此選出一些做介紹,所有插件在 node_modules 下
1、Express nodejs 框架,是DoraCMS的基礎(chǔ)框架
2、Gm 圖片縮略圖,為上傳圖片生成指定大小的縮略圖
3、Moment 時間格式化工具,功能非常強大
4、Nodemailer nodejs郵件發(fā)送組件
5、Formidable 文件上傳組件
6、Qiniu 七牛云存儲組件,用于將文件上傳到七牛上
7、Qr-image 用戶將自定義鏈接生成二維碼圖片的組件,輕量級 很方便
8、Archiver 文件夾壓縮工具,將指定文件夾壓縮為zip
9、Shortid 用在了實體類中,用于生成短id替代 mongodb 的長id
10、Validator 用戶服務(wù)端數(shù)據(jù)校驗,提供很多方法對數(shù)據(jù)進(jìn)行校驗
11、Ueditor-nodejs 將nodejs和百度的ueditor整合,這個組件感覺很有用
12、Mongoose 用于nodejs 連接 mongodb,并提供了豐富的數(shù)據(jù)處理的接口
2.6 關(guān)于編碼
1、DoraCMS 的編碼,前臺主要用到了 ejs 模板和ejs語法 展示數(shù)據(jù);后臺主要用到了ejs和 angularjs 來展示數(shù)據(jù)。不熟悉 angularjs 的童鞋和簡單了解一下,對于后臺展示數(shù)據(jù)非常方便,但是不適合前臺,因為angularjs 不適合做seo 。
2、DoraCMS 基于 nodejs + express 編寫,所以前端基本是div+css+js ,服務(wù)端主要是js,對js比較了解的前端開發(fā)者很容易就能上手。
3、DoraCMS 80%的代碼都有注釋,詳細(xì)介紹了接口的用途和細(xì)節(jié)處理,方便查看。
三、總結(jié)
DoraCMS 開發(fā)時間比較短,功能并不是很豐富,但是麻雀雖小、五臟俱全,基本功能都是具備的。由于DoraCMS是本人獨立開發(fā),由于技術(shù)有限難免會有些處理不好的地方,或者一些很明顯的bug(雖然我也在不斷的改善),如果您發(fā)現(xiàn)了問題,請您不佞賜教,如果確實存在問題,我會不斷的更新上去,這也是開源的目的之所在。如果您有更好的解決方案或者對DoraCMS有更好的想法,也可以通過我的博客聯(lián)系我,讓我們一起探討,共同進(jìn)步。
四、FAQ
1、一直沒看到說設(shè)置數(shù)據(jù)庫密碼,這樣安全么?
當(dāng)然不安全,本地調(diào)試可以不用設(shè)置密碼,程序部署上去肯定是要設(shè)置數(shù)據(jù)庫賬號密碼的,怎樣設(shè)置呢,給個鏈接大家可以參考下:
http://ibruce.info/2015/03/03/mongodb3-auth/
2、網(wǎng)絡(luò)上很多cms都很強大,為什么要選擇DoraCMS ?
當(dāng)然,目前很多成熟的cms(織夢、phpcms等),DoraCMS 剛起步自然比不了,首先DoraCMS創(chuàng)建的目的是為了更深入的了解nodejs并付諸實踐,開源的目的也是為了通過案例來不斷改進(jìn)我們的nodejs水平,共同提高;其次DoraCMS結(jié)構(gòu)清晰、模塊簡單,上手很容易。目前市面的cms結(jié)構(gòu)復(fù)雜,想要自己修改定制學(xué)習(xí)成本比較高。初識nodejs的開發(fā)者可以了解一個cms實現(xiàn)的基礎(chǔ)過程,熟悉nodejs的也可以用DoraCMS 來進(jìn)行二次開發(fā),不用再從頭開始。DoraCMS 遵循MIT協(xié)議完全開源,您可以自由定制屬于你自己的網(wǎng)站而不必花很多時間去處理最基礎(chǔ)的一些東西,為了讓更多的人去了解和認(rèn)識nodejs,于是DoraCMS 誕生了。
3、演示地址在哪里?
http://www.html-js.cn 基于DoraCMS 定制的博客系統(tǒng)
http://www.dailyads.cn 基于 DoraCMS 定制的視頻分享站點
網(wǎng)站名稱:DoraCMS基于Nodejs的內(nèi)容管理系統(tǒng)(開發(fā)文檔)
轉(zhuǎn)載來源:http://chinadenli.net/article22/cjiijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)建站、微信公眾號、外貿(mào)建站、建站公司、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)