一個基於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

這裏是廣告

最後,你的打開方式沒有問題,但這實際上是廣告…… 歡迎下載辣媽加上萌寶貼圖秀: 小腳丫 目前正在 測試中……

相關文章
相關標籤/搜索