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

CMS 简单的架构

初始架构:

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

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

一些小坑

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

但是 NodeJS不同,个人感觉,NodeJS对于新手( 不了解AMD机制 )可能曲线是非常陡峭的,到后面反而慢慢平滑上升(这里应该有大神的板砖~欢迎~~~),

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

Mysql :

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

后端:

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

前端:

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

WEB原型图和业务逻辑

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

一、内容管理
  1. 支持相关条件检索
  2. 可以对不良消息、不良评论放置回收站以及恢复
  3. 对消息进行分类,以及类目置顶(取消置顶)
  4. 管理员可以操作运营的马甲账号(随机)进行对消息的点赞和评论
  5. 后端分页(默认10条每页)


二、会员账号管理
  1. 支持会员检索(会员昵称或者ID)
  2. 封禁(解禁)不良账户操作(记录操作人以及时间)
  3. 权限管理,提升管理员或解除管理员(目前暂支持普通用户与超级管理员)
  4. 创建马甲账号(用户运营,你懂的~)



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



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



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


以上,业务需求完毕~

GitHub 源码

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

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

这里是广告

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

一个基于NodeJS开发的APP管理CMS系统的更多相关文章

  1. 一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透测试和开发调试。

    源码地址:https://github.com/wuchangming/node-mitmproxy node-mitmproxy node-mitmproxy是一个基于nodejs,支持http/h ...

  2. NodeBB,一个基于nodejs的响应式论坛

    喜欢方便的同学请绕道去discuz,好吧我是nodejs的重视患者,首先你要有自己的vps或则云空间,比如9cloud,我今天用的是阿里云的VPS. 进入阿里云Ubuntu主机 .... 输入密码进入 ...

  3. 基于java开发的在线题库系统tamguo

    简介 探果网(简称tamguo)是基于java开发的在线题库系统,包括 在线访问 后台运营 会员中心 书籍中心 管理员账号:system 密码:123456 因为线上数据和测试数据没有做到隔离,作者已 ...

  4. SpringBoot+vue+Iview前后端分离权限内容管理CMS系统

    hrcms基于springBoot框架的内容管理系统,采用最新最主流的技术,后端采用spring boot,mybatis-plus,freemaker,shiro,redis,mysql,等,主要功 ...

  5. 安利一个基于Spring Cloud 的面试刷题系统。面试、毕设、项目经验一网打尽

    推荐: 接近100K star 的Java学习/面试指南 Github 95k+点赞的Java面试/学习手册.pdf 今天给小伙伴们推荐一个朋友开源的面试刷题系统. 这篇文章我会从系统架构设计层面详解 ...

  6. 谷歌发布基于机器学习的Android APP安全检测系统:Google Play Protect

    Google Play作为众所周知的在线应用市场,因为审查制度的松散,经常会有一些恶意软件伪装成其他应用混入其中.此前阿里聚安全小编就报道了2例关于恶意软件伪装在Google Play上的事件:< ...

  7. Java开源内容管理CMS系统J4CMS支持静态化直接ftp上传到你的空间了

    页面可直接编辑的cms系统j4cms能够直接支持使用ftp 输出 html到你的空间了 真正的静态化 这是静态化后的站点 http://www.j4cms.com/ 源代码上传至csdn了,能够下载源 ...

  8. 基于Nodejs开发的web即时聊天工具

    由于公司需要开发web即时聊天的功能,开始时我们主要的实施方法是用jquery的ajax定时(10秒)轮询向服务器请求,由于是轮询请求,对 服务器的压力比较大.我们网站上线的时间不长,访问量不是很大, ...

  9. [Java] 实现一个基于命令行的用户管理

    实现基于一个命令行的用户管理,控制台操作 控制类 /* * 文 件 名: mvc.my.test.UserInterface.java * 版 权: XXX Technologies Co., Ltd ...

随机推荐

  1. TortoiseGit需要重复填写用户名和密码的问题

    命令行执行: git config --global credential.helper store 即可

  2. 域对象 request

    一)域对象: 1)request的生命周期: 从请求开始创建,到响应完成结束. 2)  作用:携带一次请求内的数据. 3)请求转发: 请求转发: 1)浏览器发送请求到服务器A,然后服务器A将请求转发到 ...

  3. localStorage 和 sessionStorage

    1.概述 以前本地存储使用 cookie.但是 Web 存储需要更加安全和快速.所以就出现了localStorage 和 sessionStorage. 2.sessionStorage,localS ...

  4. Diy智能家居-1.基于esp8266的语音控制系统(开篇)

    目录Diy智能家居-1.基于esp8266的语音控制系统(开篇) https://blog.csdn.net/arno1988/article/details/82628589 Diy智能家居-2.基 ...

  5. Linux下onvif客户端获取ipc摄像头 获取能力:GetCapabilities

    GetCapabilities:获取能力,主要目的获取设备能力信息(获取媒体服务地址) 鉴权:但是在调用获取设备能力之前是需要鉴权的.ONVIF协议规定,部分接口需要鉴权,部分接口不需要鉴权,在调用需 ...

  6. 20145202马超 2016-2017-2 《Java程序设计》第9周学习总结

    20145202马超 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交 ...

  7. tomcat : 虚拟路径映射

    tomcat设置虚拟访问地址和真实路径的映射,方法有几种,这里介绍常用的两种方式: 一.修改server.xml文件: 步骤如下:  1.在tomcat根目录下打开conf文件夹,该文件夹下有个ser ...

  8. C++多线程,互斥,同步

    同步和互斥 当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源.例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件中的字符数.当然,在把整个文件调入内存之前, ...

  9. 牛客OI周赛3-提高组-B-1408[dp]

    题意 给你长度为 \(n\) 的两个排列 \(A,B\) 组成的序列,求最少的交换相邻数字的次数使得 \(A,B\) 分别有序. \(n\leq 2000\) . 分析 如果只有一个排列时最少交换次数 ...

  10. 微服务介绍及Asp.net Core实战项目系列

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 二.目录 0.微服务介绍 1.RESTful API 规范介绍 2.asp.net core介绍及swagger使用 3.asp. ...