DoraCMS

您现在的位置是:首页>文档内容页

文档详情

DoraCMS 基于Nodejs的内容管理系统(开发文档)

doramart 2015-08-16 13:34:52 原创教程241649
DoraCMS 基于Nodejs的内容管理系统开发文档,帮助需要定制的童鞋更清楚的了解DoraCMS的整体结构,更快速的进行二次开发

DoraCMS开发指南


DoraCMS开发指南

一、 DoraCMS 安装

1.1 安装nodejs

1.2 安装Mongodb。

1.3 运行DoraCMS

1.3.1启动mongodb

1.3.2 插入初始数据

1.3.3运行DoraCMS

1.3.4 访问地址

二、 DorCMS 开发

2.1 配置文件

2.2 关于路由

2.3 关于模板

2.4 实体类

2.5 用到的插件

2.6 关于编码

三、总结

四、FAQ




一、DoraCMS 安装


该部分有详细介绍,具体查看下面的文档:


DoraCMS安装教程(windows平台)


DoraCMS安装教程(linux平台)


二、DorCMS 开发

2.1 配置文件

DoraCMS 的主要配置在 settings.js 中设置(/onlineCMS/models/db/settings.js):

//    数据库配置
    COOKIE_SECRET: 'doramart.com',
    URL: 'mongodb://127.0.0.1:27017/doracms',
    DB: 'doracms',
    HOST: '127.0.0.1', // 数据库地址
    PORT: 27017, // 数据库端口号
    USERNAME: 'doracms', // 数据库用户名
    PASSWORD: '000000', // 数据库密码

//    站点基础信息配置
    SITETITLE : '前端开发俱乐部', // 站点名称
    SITEDOMAIN : 'http://www.html-js.cn', // 站点域名
    SITEICP : '粤ICP备15038960号-2', // 站点备案号
    SYSTEMMAIL : 'doramart@qq.com', // 管理员个人邮箱
    UPDATEFOLDER : process.cwd()+'/public/upload', // 默认上传文件夹本地路径
    TEMPSFOLDER : process.cwd()+'/views/web/temp', // 默认模板文件夹本地路径
    DATAOPERATION : process.cwd()+'/models/db/bat', //数据库操作脚本目录
    DATABACKFORDER : 'C:/softbak/mongodbConfig/mongodata/', // 服务端数据库操作脚本目录
    CMSDISCRIPTION : '前端开发俱乐部,分享前端知识,丰富前端技能。汇集国内专业的前端开发文档,为推动业内前端开发水平共同奋斗。html,js,css,nodejs,前端开发,jquery,web前端, web前端开发, 前端开发工程师',
    SITEKEYWORDS : '前端开发俱乐部,前端俱乐部,DoraCMS,内容管理系统, 前端开发, web前端, 前端开发工程师,前端资源, angularjs, 前端开发工具, nodejs ,boostrap',
    SITEBASICKEYWORDS : '前端开发俱乐部,前端开发,前端俱乐部,DoraCMS', // 基础关键词


针对上面这些静态参数都进行了详细的注释,如果你设置了数据库账号密码,则需要在这里做相应的配置,同时需要在 Dbopt.js 中做相应的数据库连接设置。


DoraCMS开发文档.jpg


Settings.js 中有四个参数需要注意一下:

UPDATEFOLDER : process.cwd()+'/public/upload', // 默认上传文件夹本地路径
TEMPSFOLDER : process.cwd()+'/views/web/temp', // 默认模板文件夹本地路径
DATAOPERATION : process.cwd()+'/models/db/bat', //数据库操作脚本目录


上面三个参数原则上不用修改,UPDATEFOLDER 指定上传文件的目录,TEMPSFOLDER 为指定的模板文件夹,DATAOPERATION 为执行数据备份的脚本目录文件夹

DATABACKFORDER : 'C:/softbak/xxxx/', // 服务端数据库操作脚本目录

DATABACKFORDER 指定数据备份的本地路径。


下面的配置都是后台模块的静态参数:

SYSTEMMANAGE : new Array('sysTemManage','DoraCMS后台管理'),  // 后台模块(系统管理)
ADMINUSERLIST : new Array('sysTemManage_user','系统用户管理'),
ADMINGROUPLIST : new Array('sysTemManage_uGroup','系统用户组管理'),
ADSLIST : new Array('sysTemManage_ads','广告管理'),
FILESLIST : new Array('sysTemManage_files','文件管理'),
DATAMANAGE : new Array('sysTemManage_data','数据管理'), // 数据管理
BACKUPDATA : new Array('sysTemManage_data_1','数据备份'), // 数据备份


CONTENTMANAGE : new Array('contentManage','内容管理'), // 后台模块(内容管理)
CONTENTLIST : new Array('contentManage_content','文档管理'),
CONTENTCATEGORYS : new Array('contentManage_cateGory','文档类别管理'),
CONTENTTAGS : new Array('contentManage_tag','文档标签管理'), //标签管理
CONTENTTEMPS : new Array('contentManage_temp','文档模板管理'), //模板管理
MESSAGEMANAGE : new Array('contentManage_msg','留言管理'), // 留言管理

USERMANAGE : new Array('userManage','会员管理'), // 后台模块(会员管理)
REGUSERSLIST: new Array('userManage_user','注册用户管理'),


改参数对应后台模板文件 adminTemp.ejs 中的模块列表的:


DoraCMS开发文档1.jpg


也就是说,如果新增模块,需要在配置文件(settings.js) 和 adminTemp.ejs 中配置相应的cid。

这个属性是权限控制需要的,除此之外,加入新模块后,需要在权限管理模块加入新模块,并配置对应的cid



DoraCMS开发文档2.jpg




2.2 关于路由


DoraCMS 中所有的请求都是通过nodejs的路由来处理的,原理类似于java中的 struts 。

路由文件在routes文件夹下:


DoraCMS开发文档3.jpg


Admin.js , 后台所有模块管理路由

Content.js 前台文档相关

Index.js 首页相关(也包含文档列表和文档相亲)

System.js 系统操作的相关路由 (比如文件上传、邮件发送等)

Users.js 用户中心的相关请求走这里

Validat.js 后台权限控制(没有授予管理权限(session)会直接过滤掉请求)



2.3 关于模板

DoraCMS 是基于ejs 模板引擎来表现前台页面的,选择ejs 是因为比jade更好理解一些。属性js的童鞋也好接受ejs的语法来展示数据。DoraCMS 的模板文件都在 views 文件夹下,前台为web目录下,后台为manage目录下:


DoraCMS开发文档4.jpg


解析:

1、views 下的 index.ejs 为首页主体内容,sitemap.ejs 是站点地图的主体内容,sitemap.ejs是展示给用户看的,不需要手动更新。

2、Web 为前台的所有模板文件,web根目录下的 do404.ejs, do505.ejs , dosuccess.ejs 是处理操作过程结果反馈的模板,这些是普遍需要用到的。

3、Users 是用户相关页面模板。

5、public 文件夹中的为公用模板。

DoraCMS开发文档7.jpg 

6、Manage 里是后台的所有页面模板,adminTemp.ejs 是模板外壳,里面包含了各个模块列表和一些公共的引用。


DoraCMS开发文档5.jpg


7、public 文件夹下是公共目录,主要放置静态文件,包括前台和后台的静态js,css,以及DoraCMS 用到的jquery插件等。Public 下的文件都是公开的,在app.js 中设置。


2.4 实体类

这里称为“实体类”可能有些不妥,在java中,这部分确实就叫实体类,代表每个对象所具有的属性,文件存放于models 文件夹中。


DoraCMS开发文档6.jpg



每个对象都有详细注释,开发者自己去查看就可以了。



2.5 用到的插件

开发过程中,很多功能并不是自己写的,用到了npm上比较优秀的一些插件,在此选出一些做介绍,所有插件在 node_modules 下



1、Express nodejs 框架,是DoraCMS的基础框架

2、Gm 图片缩略图,为上传图片生成指定大小的缩略图

3、Moment 时间格式化工具,功能非常强大

4、Nodemailer nodejs邮件发送组件

5、Formidable 文件上传组件

7、Qr-image 用户将自定义链接生成二维码图片的组件,轻量级 很方便

8、Archiver 文件夹压缩工具,将指定文件夹压缩为zip

9、Shortid 用在了实体类中,用于生成短id替代 mongodb 的长id

10、Validator 用户服务端数据校验,提供很多方法对数据进行校验

11、Ueditor-nodejs 将nodejs和百度的ueditor整合,这个组件感觉很有用

12、Mongoose 用于nodejs 连接 mongodb,并提供了丰富的数据处理的接口



2.6 关于编码

1、DoraCMS 的编码,前台主要用到了 ejs 模板和ejs语法 展示数据;后台主要用到了ejs和 angularjs 来展示数据。不熟悉 angularjs 的童鞋和简单了解一下,对于后台展示数据非常方便,但是不适合前台,因为angularjs 不适合做seo 。

2、DoraCMS 基于 nodejs + express 编写,所以前端基本是div+css+js ,服务端主要是js,对js比较了解的前端开发者很容易就能上手。

3、DoraCMS 80%的代码都有注释,详细介绍了接口的用途和细节处理,方便查看。



三、总结


DoraCMS 开发时间比较短,功能并不是很丰富,但是麻雀虽小、五脏俱全,基本功能都是具备的。由于DoraCMS是本人独立开发,由于技术有限难免会有些处理不好的地方,或者一些很明显的bug(虽然我也在不断的改善),如果您发现了问题,请您不佞赐教,如果确实存在问题,我会不断的更新上去,这也是开源的目的之所在。如果您有更好的解决方案或者对DoraCMS有更好的想法,也可以通过我的博客联系我,让我们一起探讨,共同进步。



四、FAQ


具体问题参考文档: DoraCMS安装常见问题详解


文章评论

取消回复
登录 参与评论

评论列表(