一个基于NodeJS开发的APP管理CMS系统

花了大概3周独立开发了一个基于NodeJS的CMS系统,用于公司APP的内容管理( **公司APP?广告放在最后 ^_^ ** ,管理员请理解~~~ )晚上看了部电影还不想睡,闲着也是闲着就做下小小总结~php

CMS 简单的架构

初始架构:html

主要: NodeJs + Mongodb + Express + connect-redis;
其余: ejs + formidable + nodemailer + utility + superagent + jssha前端

后来变动: Mongodb -> Mysql; connect-redis -> express-session
解释: 毕竟业务量小嘛,产品仅仅处于测试阶段node

一些小坑

楼主作了2年半小前端,后来转NodeJS(所谓的大前端)后端,期间作过自学过一段时间PHP(基于 ThinkPHPWordpress ),
对于PHP,GitHub上没啥拿的出手的( 微信公众号文章查询一个php爬虫小程序基于微信的会议系统),PHP的入门很简单,可是真正精通太难,越到后面学习曲线越陡峭,评判PHP的深度还有一个Mysql呢~ 楼主的水平仅仅停留在 写个 JSOP/XML 【保证后台API接口连接的安全性,采起跨域访问的机制(CORS)并有效防止跨站点脚本(XSS)攻击和跨站点请求(CSRF)伪造】 接口上……mysql

可是 NodeJS不一样,我的感受,NodeJS对于新手( 不了解AMD机制 )可能曲线是很是陡峭的,到后面反而慢慢平滑上升(这里应该有大神的板砖~欢迎~~~),git

我的建议 小前端(基于浏览器端的“页面仔”)都应该懂或者了解一门后端语言,知道后端接口的数据是怎么来的(或者为何没的~)并强烈推荐 NodeJS 毕竟是咱们本身熟悉的语言 JS (这里再次感谢 Ryan Dahl 在2009年2月的疯狂Coding)再贴一下 大神的 NodeJS学习线路图github

Mysql :

这里用的都是 insert、delete、update、select、where、and 、or、order by、limit、like、count(*)、alter…… 没啥高级的拿得出手web

后端:

因为后面采用了 Mysql 因此,路由里面就塞满了 SQL语句,不废话贴个代码:
选了个代码量最大的 message 查询接口,下图:redis

message查询接口

前端:

前端一开始兴致勃勃的用 SeaJS,后来也懒得 config 的,直接就贴 url了……
主要用的就是 bootstrap (主要是它的dropdown插件、tab组件、modal对话框、alert、以及基本UI)
也贴一下前端的 SeaJS示例 代码,如图:sql

SeaJS 示例

WEB原型图和业务逻辑

关于需求:
web原型图逻辑思惟导图(原本也木有) 就免了,不贴出来了,
这里先放几张已经实现的功能及效果图,前端UI是基于 bootstrap V2.0 的,
小公司资源奇缺,产品经理是运营兼职的(由于最后运营是客户嘛),
项目经理呢就程序猿兼职了,对,就是在下
(这样才能逼着程序猿加班嘛,不过楼主还真讨厌加班,没有加班……加班不必定高效嘛)。
先声明下,木有UI稿哦~

1、内容管理
  1. 支持相关条件检索
  2. 能够对不良消息、不良评论放置回收站以及恢复
  3. 对消息进行分类,以及类目置顶(取消置顶)
  4. 管理员能够操做运营的马甲帐号(随机)进行对消息的点赞和评论
  5. 后端分页(默认10条每页)
    内容管理-所有
    详细的评论和赞
    后端分页
2、会员帐号管理
  1. 支持会员检索(会员昵称或者ID)
  2. 封禁(解禁)不良帐户操做(记录操做人以及时间)
  3. 权限管理,提高管理员或解除管理员(目前暂支持普通用户与超级管理员)
  4. 建立马甲帐号(用户运营,你懂的~)

会员检索
权限管理
建立马甲帐号

3、贴纸管理
  1. 支持贴纸相关条件检索
  2. 对贴纸的增删改查操做
  3. 贴纸的排序

贴纸管理
新建贴纸
修改贴纸

4、消息查询
  1. 单条消息查询(by msg id)生成加密的H5页面连接(H5页面?主要用于推广;加密?防止爬虫~)
  2. 对消息的文本模糊查询(有人发广告,好比检索“qq”出来的都是找兼职的啦)
  3. 对某个用户(by user id)支持他的 历史动态历史评论 的查询(看他历史记录也能揪出垃圾用户)

单条消息生成加密的H5页面连接
文本模糊查询
历史动态和评论查询

5、微信SDK加密API
  1. 设置 APPID 和 SECRET
  2. 提供带缓存的 access_token 接口和 ticket 接口
  3. 提供带缓存的 SHA1加密 接口(5个参数)

微信SDK 加密API接口
SHA1加密

以上,业务需求完毕~

GitHub 源码

mysql表就不提供了(那提供了源码 也没什么卵用啊~ yes)

须要请fork https://github.com/highsea/hi-cms

这里是广告

最后,你的打开方式没有问题,但这实际上是广告…… 欢迎下载辣妈加上萌宝贴图秀: 小脚丫 目前正在 测试中……

相关文章
相关标签/搜索