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

阅读:347 2019-03-19 14:42:19 来源:新网

doracms开发指南doracms开发指南

一、doracms安装1.1安装nodejs1.2安装mongodb。1.3运行doracms1.3.1启动mongodb1.3.2插入初始数据1.3.3运行doracms1.3.4访问地址二、dorcms开发2.1配置文件2.2关于路由2.3关于模板2.4实体类2.5用到的插件2.6关于编码三、总结四、faq一、doracms安装1.1安装nodejsdoracms是基于nodejs开发的,所以要想正常运行doracms需要nodejs环境。在nodejs官网(https://nodejs.org/)根据电脑版本下载对应的安装文件进行安装,安装完成后,打开命令窗口执行node-v,如果出现版本号,证明安装成功。我的电脑是64位版本,安装了重启之后才生效。1.2安装mongodb。doracms使用的是mongodb的数据库,至于mongodb的特点和nosql的优势在此就不做详细描述了。安装方法很简单,到官网(https://www.mongodb.org/)下载对应版本,直接安装就可以了。这里有一点需要注意的是,如果你安装在d盘,安装完成后,在d盘根目录下创建文件夹data,不然启动mongo会提示数据库路径错误,当然你也可以通过命令启动mongodb来指定数据库的路径,如果你不想麻烦,就照我说的处理就可以了。1、在本地盘建立一个文件夹(最好英文名称),通过svncheckout出doracms的代码,项目地址:https://git.oschina.net/doramart/doracms,svn地址:svn://git.oschina.net/doramart/doracms,完成后代码结构如下:注:.idea不属于项目文件夹,为webstorm工程文件,不必理会。1.3运行doracms1.3.1启动mongodb找到mongodb安装目录下bin文件夹,执行mongod.exe1.3.2插入初始数据在《doracms操作指南》中有提到插入初始管理数据,因为刚安装的数据是空的,需要插入初始数据来管理后台,这里重新介绍一次:①、找到mongodb安装目录(mongodbserver3.0bin)执行mongo.exe②、输入usedoracms③、插入用户组数据: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})④、插入用户数据: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})⑤、插入数据如果存在格式问题,需要在记事本里编辑一下。如果上述执行正常,那么默认的登录名和密码为test/000000,这样,您就可以正常登录后台了。1.3.3运行doracms在刚刚svn下载的代码目录下调出cmd命令窗口,执行npmstart如果没有报错,证明运行成功了。注意:doracms指定了默认端口号为80,如果您的机器已经占用了80端口,这里会报错,如果想修改默认端口号,可以到代码的bin目录下www文件修改,当然修改完成,访问路径记得带上端口号:至此,doracms就运行起来了1.3.4访问地址前台:127.0.0.1(默认80端口)后台:127.0.0.1/admin二、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备111111号-2',//站点备案号systemmail:'xxxx@163.com',//站点邮箱updatefolder:process.cwd()+'/public/upload',//默认上传文件夹本地路径tempsfolder:process.cwd()+'/views/web/temp',//默认模板文件夹本地路径dataoperation:process.cwd()+'/models/db/bat',//数据库操作脚本目录databackforder:'c:/softbak/xxxx/',//服务端数据库操作脚本目录cmsdiscription:'前端开发俱乐部,分享前端知识,丰富前端技能。汇集国内专业的前端开发文档,为推动业内前端开发水平共同奋斗。html,js,css,nodejs,前端开发,jquery,web前端,web前端开发,前端开发工程师',sitekeywords:'前端开发俱乐部,前端俱乐部,doracms内容管理系统,前端开发,web前端,web前端开发,前端开发工程师,设计,开发,前端资源,angularjs,javascript,js,ajax,jquery,html,html5,css3,浏览器兼容,前端开发工具,nodejs,node,boostrap',sitebasickeywords:'前端开发俱乐部,前端开发,前端俱乐部,doracms',//基础关键词staticfilepath:'',//静态文件空间地址updatefilepath:'',//上传文件空间地址qiniuaccess_key:'',//七牛秘钥qiniusecret_key:'',//七牛秘钥qiniucmsbucketname:'',//七牛bucket_name针对上面这些静态参数都进行了详细的注释,如果你设置了数据库账号密码,则需要在这里做相应的配置,同时需要在dbopt.js中做相应的数据库连接设置。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:'systemmanage_0',//后台模块(系统管理)adminuserlist:'systemmanage_0_1',admingrouplist:'systemmanage_0_2',emailtemplist:'systemmanage_0_3',adslist:'systemmanage_0_4',fileslist:'systemmanage_0_5',datamanage:'systemmanage_0_6',//数据管理backupdata:'systemmanage_0_6_1',//数据备份contentmanage:'contentmanage_1',//后台模块(内容管理)contentlist:'contentmanage_1_1',contentcategorys:'contentmanage_1_2',contenttags:'contentmanage_1_3',//标签管理contenttemps:'contentmanage_1_4',//模板管理contenttypes:'contentmanage_1_5',//内容属性管理contentfilmtypes:'contentmanage_1_5_1',//内容属性管理contentcountrytypes:'contentmanage_1_5_2',//内容属性管理contentyearstypes:'contentmanage_1_5_3',//内容属性管理messagemanage:'contentmanage_1_6',//留言管理usermanage:'usermanage_2',//后台模块(会员管理)reguserslist:'usermanage_2_1'改参数对应后台模板文件admintemp.ejs中的模块列表的:也就是说,如果新增模块,需要在配置文件(settings.js)和admintemp.ejs中配置相应的cid。这个属性是权限控制需要的,除此之外,加入新模块后,需要在权限管理模块加入新模块,并配置对应的cid2.2关于路由doracms中所有的请求都是通过nodejs的路由来处理的,原理类似于java中的struts。路由文件在routes文件夹下:admin.js,后台所有模块管理路由content.js前台文档相关index.js首页相关(也包含文档列表和文档相亲)system.js系统操作的相关路由(比如文件上传、邮件发送等)users.js用户中心的相关请求走这里validat.js后台权限控制(没有授予管理权限(session)会直接过滤掉请求)2.3关于模板doracms是基于ejs模板引擎来表现前台页面的,选择ejs是因为比jade更好理解一些。属性js的童鞋也好接受ejs的语法来展示数据。doracms的模板文件都在views文件夹下:解析:1、views下的index.ejs为首页主体内容,sitemap.ejs是站点地图的主体内容,sitemap.ejs是展示给用户看的,不需要手动更新。2、web为前台的所有模板文件,web根目录下的do404.ejs,do505.ejs,dosuccess.ejs是处理操作过程结果反馈的模板,这些是普遍需要用到的。3、users是用户相关页面模板。4、temp中包含了公共header和footer,以及文档模板,aboutme、blog、lab都属于文档模板,可以根据自己的需要自行添加。5、public文件夹中的模板暂时没用到。6、manage里是后台的所有页面模板,admintemp.ejs是模板外壳,里面包含了各个模块列表和一些公共的引用。7、public文件夹下是公共目录,主要放置静态文件,包括前台和后台的静态js,css,以及doracms用到的jquery插件等。public下的文件都是公开的,在app.js中设置。2.4实体类这里称为“实体类”可能有些不妥,在java中,这部分确实就叫实体类,代表每个对象所具有的属性,文件存放于models文件夹中。每个对象都有详细注释,开发者自己去查看就可以了。2.5用到的插件开发过程中,很多功能并不是自己写的,用到了npm上比较优秀的一些插件,在此选出一些做介绍,所有插件在node_modules下1、expressnodejs框架,是doracms的基础框架2、gm图片缩略图,为上传图片生成指定大小的缩略图3、moment时间格式化工具,功能非常强大4、nodemailernodejs邮件发送组件5、formidable文件上传组件6、qiniu七牛云存储组件,用于将文件上传到七牛上7、qr-image用户将自定义链接生成二维码图片的组件,轻量级很方便8、archiver文件夹压缩工具,将指定文件夹压缩为zip9、shortid用在了实体类中,用于生成短id替代mongodb的长id10、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、doracms80%的代码都有注释,详细介绍了接口的用途和细节处理,方便查看。三、总结doracms开发时间比较短,功能并不是很丰富,但是麻雀虽小、五脏俱全,基本功能都是具备的。由于doracms是本人独立开发,由于技术有限难免会有些处理不好的地方,或者一些很明显的bug(虽然我也在不断的改善),如果您发现了问题,请您不佞赐教,如果确实存在问题,我会不断的更新上去,这也是开源的目的之所在。如果您有更好的解决方案或者对doracms有更好的想法,也可以通过我的博客联系我,让我们一起探讨,共同进步。四、faq1、一直没看到说设置数据库密码,这样安全么?当然不安全,本地调试可以不用设置密码,程序部署上去肯定是要设置数据库账号密码的,怎样设置呢,给个链接大家可以参考下:http://ibruce.info/2015/03/03/mongodb3-auth/2、网络上很多cms都很强大,为什么要选择doracms?当然,目前很多成熟的cms(织梦、phpcms等),doracms刚起步自然比不了,首先doracms创建的目的是为了更深入的了解nodejs并付诸实践,开源的目的也是为了通过案例来不断改进我们的nodejs水平,共同提高;其次doracms结构清晰、模块简单,上手很容易。目前市面的cms结构复杂,想要自己修改定制学习成本比较高。初识nodejs的开发者可以了解一个cms实现的基础过程,熟悉nodejs的也可以用doracms来进行二次开发,不用再从头开始。doracms遵循mit协议完全开源,您可以自由定制属于你自己的网站而不必花很多时间去处理最基础的一些东西,为了让更多的人去了解和认识nodejs,于是doracms诞生了。3、演示地址在哪里?http://www.html-js.cn基于doracms定制的博客系统http://www.dailyads.cn基于doracms定制的视频分享站点

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服