DoraCMS 源码知识点备注
項目需要研究了下DoraCMS這款開源CMS,真心做的不錯:)。用的框架是常用的express 4 + mongoose,代碼也很規范,值得學習。
源碼中一些涉及到的小知識點備注下:
https://github.com/doramart/DoraCMS
1、Robots協議
1)當搜索引擎訪問到網站目錄時,會判斷當前是否存在Robots.txt;
2)若存在則按照該文件的要求來限制訪問;
3)規則:
User-agent: * 這里的*代表的所有的搜索引擎種類
Disallow: /ABC/ 這里定義是禁止爬尋ABC目錄下面的目錄
Disallow: /.jpg$ 禁止抓取網頁所有的.jpg格式的圖片
Disallow:/ab/adc.html 禁止爬取ab文件夾下面的adc.html文件
Sitemap: 網站地圖 告訴爬蟲這個頁面是網站地圖
2、CMS的實現
1)利用ueditor及node下插件
var ueditor = require('ueditor-nodejs');app.use('/ueditor/ue', ueditor({//這里的/ueditor/ue是因為文件件重命名為了ueditor,如果沒改名,那么應該是/ueditor版本號/ueconfigFile: '/ueditor/jsp/config.json',//如果下載的是jsp的,就填寫/ueditor/jsp/config.jsonmode: 'local', //本地存儲填寫localaccessKey: '',//本地存儲不填寫,bcs填寫secrectKey: '',//本地存儲不填寫,bcs填寫staticPath: path.join(__dirname, 'public'), //一般固定的寫法,靜態資源的目錄,如果是bcs,可以不填dynamicPath: '/upload/blogpicture' }));2)ueditor 將編輯的信息以html格式傳入后臺并存儲在數據庫中,上述配置中的dynamicPath實現本地上傳的圖片,即保存一個本地的路徑;
3、利用res.locals 存儲一些全局變量,模板中可以直接使用
res.locals.logined = req.session.logined; res.locals.userInfo = req.session.user;4、站點地圖
1)、通常是sitemap.xml 存儲整個網站的結構, 可方便網站管理員通知搜索引擎他們網站上有哪些可供抓取的網頁;
2)、在DoraCMS中,sitemap.xml并不是本地存儲的文件,而是在用戶訪問時通過讀取數據庫生成,但利用redis緩存,緩存時間為1天;
即當天的文檔不更新至緩存;
5、利用validator擴展實現校驗
validator.extend('isEn', function (str) {return /^\S+[a-z A-Z]$/.test(str);});6、使用Redis緩存
getContentsCount : function(req,res,cateParentId,cateQuery,callBack){cache.get(settings.session_secret + '_' + cateParentId + '_contentCount',function(contentCount){if(contentCount) {callBack(contentCount);}else{Content.count(cateQuery,function(err,count){if(err){res.end(err);}else{cache.set(settings.session_secret + '_' + cateParentId + '_contentCount', count, 1000 * 60 * 60 * 24); // 緩存一天 callBack(count)}})}});}轉載于:https://www.cnblogs.com/Fredric-2013/p/5761892.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的DoraCMS 源码知识点备注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Angular之filter学习
- 下一篇: 刪數 (Standard IO)