久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日焦點 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 軟件開發 » 正文

博客內容管理系統詳解

放大字體  縮小字體 發布日期:2018-02-22  來源:企業800網  作者:新格網  瀏覽次數:473  【去百度看看】
核心提示:一、更新內容 數據庫重新設計,改成以用戶分組的subDocs數據庫結構 應數據庫改動,所有接口重新設計,并統一采用和立馬理財一致的接口風格 刪除原來游客模式,增加登錄注冊功能,支持彈窗登錄。 增加首頁,展示最新發布文章和注冊用戶 增加修改密碼,登出,注銷等功能。

一、更新內容

  1. 數據庫重新設計,改成以用戶分組的subDocs數據庫結構

  2. 應數據庫改動,所有接口重新設計,并統一采用和立馬理財一致的接口風格

  3. 刪除原來游客模式,增加登錄注冊功能,支持彈窗登錄。

  4. 增加首頁,展示最新發布文章和注冊用戶

  5. 增加修改密碼,登出,注銷等功能。

  6. 優化pop彈窗組件,更加智能,更多配置項,接近網易$.dialog組件。并且一套代碼僅修改了下css,實現相同接口下pc端彈窗和wap端toast功能。

  7. 增加移動端適配

  8. 優化原來代碼,修復部分bug。

更多的更新內容請移步項目CMS-of-Blog_Production和CMS-of-Blog。

二、核心代碼分析

1. 數據庫

對原數據庫進行重新設計,改成以用戶分組的subDocs數據庫結構。這樣以用戶為一個整體的數據庫結構更加清晰,同時也更方便操作和讀取。代碼如下:

代碼一開始新定義了三個Schema:articleSchema、linkSchema和userSchema。而userSchema里又嵌套了articleSchema和linkSchema,構成了以用戶分組的subDocs數據庫結構。Schema是一種以文件形式存儲的數據庫模型骨架,不具備數據庫的操作能力。然后將將該Schema發布為Model。Model由Schema發布生成的模型,具有抽象屬性和行為的數據庫操作對。由Model可以創建的實體,比如新注冊一個用戶就會創建一個實體。

數據庫創建了之后需要去讀取和操作,可以看下注冊時發送郵箱驗證碼的這段代碼感受下。

后臺接受到發送郵箱驗證碼的請求后,會初始化一個tmp的用戶。通過new db.User()會創建一個User的實例,然后執行save()操作會將這條數據寫到數據庫里。如果在半小時內沒有注冊成功,通過匹配郵箱,然后db.User.remove()將這條數據刪除。更多具體用法請移步官方文檔。

2. 后臺

將所有請求分為三種:

  • ajax異步請求,統一路徑:/web/

  • 公共頁面部分,如博客首頁、登錄、注冊等,統一路徑:/

  • 與博客用戶id相關的博客部分,統一路徑:/:id/

這樣每個用戶都可以擁有自己的博客頁面,具體代碼如下:

具體的ajax接口代碼大家可以看server文件夾下的index.js文件。

3. pop/toast組件

3.1 pop/toast組件配置參數說明

  • pop: 彈窗的顯示與否, 根據content參數,有內容則為true

  • css: 自定義彈窗的class, 默認為空

  • showClose: 為false則不顯示關閉按鈕, 默認顯示

  • closeFn: 彈窗點擊關閉按鈕之后的回調

  • title: 彈窗的標題,默認’溫馨提示’, 如果不想顯示title, 直接傳空

  • content(required): 彈窗的內容,支持傳html

  • btn1: ‘按鈕1文案|按鈕1樣式class’, 格式化后為btn1Text和btn1Css

  • cb1: 按鈕1點擊之后的回調,如果cb1沒有明確返回true,則默認按鈕點擊后關閉彈窗

  • btn2: ‘按鈕2文案|按鈕2樣式class’, 格式化后為btn2Text和btn2Css

  • cb2: 按鈕2點擊之后的回調,如果cb2沒有明確返回true,則默認按鈕點擊后關閉彈窗。按鈕參數不傳,文案默認’我知道了’,點擊關閉彈窗

  • init: 彈窗建立后的初始化函數,可以用來處理復雜交互(注意彈窗一定要是從pop為false變成true才會執行)

  • destroy: 彈窗消失之后的回調函數

  • wapGoDialog: 在移動端時,要不要走彈窗,默認false,走toast

3.2 pop/toast組件代碼

3.3 pop/toast組件參數格式化代碼

為了使用方便,我們在使用的時候進行了簡寫。為了讓組件能識別,需要在vuex的action里對傳入的參數格式化。

為了讓移動端兼容pop彈窗組件,我們采用mediaQuery對移動端樣式進行了更改。增加參數wapGoDialog,表明我們在移動端時,要不要走彈窗,默認false,走toast。這樣可以一套代碼就可以兼容pc和wap。

后記

這里主要分析了下后臺和數據庫,而且比較簡單,大家可以去看源碼。總之,這是一個不錯的前端入手后臺和數據庫的例子。功能比較豐富,而且可以學習下vue.js。

相關推薦:

最全的PHP開源內容管理系統CMS

20 個 PHP CMS開源內容管理系統

基于laravel框架內容管理系統

以上就是博客內容管理系統詳解的詳細內容,更多請關注php中文網其它相關文章!

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 皖ICP備2021004516號-14
企業800網 · 提供技術支持