個人部落格設計記錄

2022-07-25 08:00:09 字數 1977 閱讀 2693

一、使用的中介軟體

1. koa

2. koa-static 實現靜態資源伺服器

3. koa-bodyparse 實現body的解析,主要是post請求資料的解析

4. koa-logger 控制台日誌中介軟體

5. koa-session-minimal  適用於koa2 的session中介軟體,提供儲存介質的讀寫介面 ,但真正儲存的資料庫等配置依賴其他

6.  koa-mysql-session  為koa-session-minimal中介軟體提供mysql資料庫的session資料讀寫操作。

7.  mysql 實現對mysql資料局的操作

二、 server目錄結構

codes訪問請求返回狀態資訊

db訪問資料庫sql相關檔案

middlewares訪問路由的**中介軟體,在其中呼叫services層方法,響應路由請求

services訪問業務邏輯相關函式,呼叫model層方法,對傳入的引數資料和model層方法返回的資料,進行處理

models訪問資料模型相關函式,接受引數,呼叫utils中的一些方法運算元據庫,返回資料,不對資料格式等進行處理,

utils訪問了資料庫操作的一些封裝方法

index.js伺服器端入口

serverconfig.js訪問資料庫伺服器相關配置,比如資料庫連線配置

三、session的驗證機制

原理過程:

session的生成過程:

對於第一次登陸請求,如果請求成功,則為其設定相應的session資訊,比如登陸使用者為liyanlei,根據使用者名稱和密碼查詢到該使用者的基本資訊,然後按照以下格式設定對應session_data:

然後以某種方式生成乙個唯一的session_id,我們可以以鍵值對的形式理解,其中session_id為key,二session_data為value,將其存入資料庫的表中(當然我們也可以為其設定乙個expires過期時間,不斷新增session資訊,經過一段時間後,我們可以根據expires刪除過期session,來減少資料庫壓力)

最後我們將生成的session_id寫入到瀏覽器端的cookie中(比如說cookie中的user_sid對應的值極為session_id),並為其設定生存期,當cookie的資料度過生存期後,便會失效。

根據sesson驗證登陸

瀏覽器發出各種請求時,會自動攜帶當前未cookie資訊(肯定是未過期的),我們接受請求,獲取cookie中的user_sid(也就是session_id),我們根據sesion_id查詢資料庫,在儲存session資訊的表中獲取到對應使用者的各種資訊,也就是session_data,我們根據session_data可以判斷當前登入使用者是誰,是否之前已經登入過等等資訊,具體要看我們在session_data中設定了什麼,大概流程就是如期,如果當前登入使用者沒有已登入,就是要驗證使用者名稱和密碼,通過後生成session,也就是上邊的session生成過程,依次迴圈。

使用koa-session-minimal,koa-mysql-session

對於生成session資訊、將session存入cookie、資料庫中session的儲存和讀取這些操作,我們使用koa-session-minimal,koa-mysql-session這兩個中介軟體就可以實現,可以節省我們去封裝該功能函式的事件

四、koa-router的中介軟體中,如果當前請求時post請求,則在請求的處理中介軟體函式內通過ctx.redirect跳轉頁面無效

五、使用koa中的mysql包連線資料庫,查詢獲取date日期型別的資料格式不對,原因是時區問題,在資料庫連線配置中新增如下**,設定時區即可

// 設定時區,解決取出資料庫中date型別資料格式不對的問題

timezone : "08:00"

個人部落格搭建記錄

準備搭建乙個個人部落格,在過程中學習實踐前後端知識 在這個部落格中記錄進度 監督自己 大概計畫為 1.先使用django搭建後端 2.使用mysql作為資料庫 3.僅用h5 css js編寫簡單的前端介面 4.測試部署 此時可以發布部落格,檢視部落格 5.用vue.js或者bootstrap等前端框...

個人部落格建設記錄(一)

自從學習前端開始,就想建立個自己的部落格。一來有自己的部落格很炫酷,二來建部落格可以鍛鍊學習的前端技術。說幹就幹,經過了解,我知道建設部落格的方法五花八門。從前到後,從頁面的裝修,到資料庫的選取,伺服器的搭建,以及網域名稱的註冊,前後覆蓋了三劍客 htm css js sql語言,伺服器端語言 ph...

個人部落格 設計建模階段小結

隨著課程的推進,我們的專案到了設計建模階段,小結如下。隨後,老師具體講解了我們在設計建模時需要用到的思想 方法等,比如抽象 解耦 協議的設計 如何設計模組 元件等,更進一步,老師還闡述了區分子系統的方法如基於資料流的 基於控制的方法等。因為有解耦 子系統和元件等組成部分,所以在乙個系統中定義協議是很...