【DoraCMS开发指南】DoraCMS安装教程、DoraCMS、DorCMS开发
优采云 发布时间: 2021-06-24 01:19【DoraCMS开发指南】DoraCMS安装教程、DoraCMS、DorCMS开发
Doracms开发指南
Doracms开发指南
一、Doracms安装
1.1 安装 nodejs
1.2 安装 Mongodb。
1.3 跑多拉cms
1.3.1 启动mongodb
1.3.2 插入初始数据
1.3.3Run Doracms
1.3.4 访问地址
二、Dorcms开发
2.1 配置文件
2.2 关于路由
2.3 关于模板
2.4 实体类
2.5 使用的插件
2.6 关于编码
三、Summary
四、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中做相应的数据库连接设置。
Settings.js 中有四个参数需要注意:
UPDATEFOLDER : process.cwd()+'/public/upload', // 默认上传文件夹本地路径
TEMPSFOLDER : process.cwd()+'/views/web/temp', // 默认模板文件夹本地路径
DATAOPERATION : process.cwd()+'/models/db/bat', //数据库操作脚本目录
以上三个参数原则上不需要修改。 UPDATEFOLDER 指定上传文件的目录,TEMPFOLDER 是指定的模板文件夹,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中模块列表对应的参数:
也就是说如果添加新的模块,需要在配置文件(settings.js)和adminTemp.ejs中配置对应的cid。
此属性是权限控制所必需的。另外,添加新模块后,需要在权限管理模块中添加新模块并配置相应的cid
2.2 关于路由
Doracms中的所有请求都是通过nodejs路由处理的,原理类似于java中的struts。
路由文件在routes文件夹下:
Admin.js,所有模块都在后台管理路由
Content.js 前端文档相关
Index.js 主页相关(还包括文档列表和文档相亲日期)
System.js 系统操作相关路由(如文件上传、邮件发送等)
来自 Users.js 用户中心的相关请求在这里
Validat.js 后台权限控制(如果没有授予管理权限(session),直接过滤掉请求)
2.3 关于模板
Doracms基于ejs模板引擎来表示前端页面。我选择 ejs 是因为它比玉更容易理解。属性js的童鞋也可以接受ejs的语法来显示数据。 Doracms的模板文件都在views文件夹下,前端在web目录下,后端在manage目录下:
分析:
1、views index.ejs 是首页的主要内容,sitemap.ejs 是站点地图的主要内容,sitemap.ejs 是展示给用户的,不需要手动更新。
2、Web是前台的所有模板文件,web根目录下的do404.ejs、do505.ejs、dosuccess.ejs是处理操作过程结果反馈的模板,这些都是常用的。
3、Users 是一个用户相关的页面模板。
5、public 是公共模板。
6、Manage 收录后端的所有页面模板,adminTemp.ejs 是模板外壳,其中收录各种模块的列表和一些公共引用。
7、public 文件夹是公共目录,主要存放静态文件,包括前台后台的静态js和css,还有Doracms使用的jquery插件。 Public下的文件都是public,在app.js中设置。
2.4 实体类
这里称它为“实体类”可能有点不对。在Java中,这部分确实叫做实体类,它代表了每个对象的属性。这些文件存储在模型文件夹中。
每个对象都有详细的注释,开发者可以自行查看。
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 用于实体类生成short id 而不是mongodb long 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%的代码都做了注释,介绍了界面的用途和详细的处理,方便查看。
三、Summary
Doracms 开发时间比较短,功能不是很丰富。不过麻雀虽小而全,但基本功能都具备。由于Doracms是我自己独立开发的,由于技术有限,难免会出现一些处理不好的问题,或者一些明显的bug(虽然我在不断改进),如果发现问题,请如果确实有问题,请不要赐教,我会继续更新它们。这也是开源的目的。如果你对Doracms有更好的解决方案或者更好的想法,也可以通过我的博客联系我,让我们一起讨论,共同进步。
四、FAQ
具体问题参考文档:Doracmsinstallation FAQ详解