项目需要研究了下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 源码知识点备注相关推荐

  1. Netty框架整体架构及源码知识点

    Netty概述 Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持.作为当前最流行的NIO框架,Netty在互联网领域.大数据分布式计算领域.游戏行业.通信行业 ...

  2. 参考WeIdentity文档和Sample源码知识点总结和接口整理

    目录 WeIdentity 1. 主要模块介绍 分布式身份标识 (WeIdentity DID) 可验证数字凭证 (WeIdentity Credential) 2. WeIdentity 参考场景 ...

  3. js定时器与数码时钟案例(源码及备注)

    js定时器与数码时钟案例 开启定时器 1.setInterval 间隔型 setInterval(参数一,参数二); 第一个参数是一个函数,第二个参数是时间(单位是毫秒) 意思就是每隔多长时间执行一次 ...

  4. java钢琴键_javapiano Java Piano模拟钢琴效果的完整源码 联合开发网 - pudn.com

    javapiano 所属分类:Java编程 开发工具:Java 文件大小:32KB 下载次数:10 上传日期:2014-04-15 21:09:50 上 传 者:王小强 说明:  Java Piano ...

  5. netty tcp服务端主动断开客户端_「Netty核心技术」6-ChannelPipeline源码

    ChannelPipeline是Channelhandler的容器,它负责ChannelHandler的管理和事件拦截与调度. 土话: ChannelPipeline就是用来管理Channelhand ...

  6. Android官方源码资料博客

    From 跟大家分享一些常用的Android相关的网址资料 一.Android系统 1.1 Android系统源码 网站 备注 https://android.googlesource.com Goo ...

  7. Qt 三维数据显示之散点图(C++源码)

    有时候我们的数据要用三维坐标显示.最近做了个小案例,分享一下源码. 备注:滚轮可缩放,右键可旋转. 目录 配置安装 源码 工程文件包 配置安装 Qt的三维坐标要用到Data Visualization ...

  8. 桌面倒计时2.0 涉及知识点详解及源码分享

    自己开发的桌面倒计时小应用,走的是黑白简约风.(老爸提议我弄个红色加鞭炮背景的喜庆风= = 嗯,下次再说) 应用截图        特别说明:标题只能输入4个字符,可选日期范围在本机当前日期至距本机当 ...

  9. spring aop原理_Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)...

    写在前面 由于Spring家族的东西很多,一次性写完也不太现实.所以这一次先更新Spring[最核心]的知识点:AOP和IOC 无论是入门还是面试,理解AOP和IOC都是非常重要的.在面试的时候,我没 ...

最新文章

  1. 爬取jd商城手机类商品图片
  2. Xamarin设备相关图片尺寸要求
  3. 想避免宕机,数据中心运营商还要不断演练实践
  4. 007.androidUI开发进阶(基础--案例) .
  5. 树莓派使用STEP3:更换镜像源
  6. Spring Boot场景启动器(Starter)
  7. 矩阵的运算及其运算规则
  8. echarts 没有icon导致工具栏无法显示_Icon失误导致OMG输掉比赛,曾经的单杀王也拉垮?天秀操作难再现...
  9. python3.8安装pyinstaller失败_pip命令安装 pyinstaller失败解决办法
  10. 不能错过!CIO不可不知的“数据经济学” | 凌云时刻
  11. Python sys.path、sys.modules模块介绍
  12. 从Web抓取信息的几个常用方法
  13. eXtremeComponents 中文参考文档
  14. Linux电源管理--PM QoS
  15. php解析shapefile,Fiona简介及Shapefile数据读取
  16. vscode ctrl + s自动保存代码 插件安装
  17. VS2010/MFC编程入门教程之目录和总结(鸡啄米)
  18. 如何通过weblogic下载文件
  19. 前端对接微信公众号网页开发流程,授权对接
  20. JS之解构( Destructuring)

热门文章

  1. alibaba Fastjson的JOSN解析库 -
  2. Shiro过滤器源码
  3. 《剑指offer》给定一颗二叉搜索树,请找出其中的第k大的结点。
  4. 把字符串中的数字找出来并按照升序排序
  5. hadoop集群中的日志文件
  6. 从原理上理解MySQL的优化建议
  7. 聊聊JVM(五)从JVM角度理解线程
  8. Java Hotspot G1 GC的一些关键技术
  9. C# WinForm开发系列 - ToolBar/OutlookBar/Tab/Wizard(转载)
  10. SQL Server timeout分析和总结