使用 node backbone搭建個人部落格系統

2021-09-16 14:27:26 字數 2052 閱讀 8423

本專案用到的主要技術棧:backbone+sass+node+mocha+chai+grunt。

系統前端互動邏輯與檢視渲染,運用collection,model,view,router,等backbone的特性,快速開發spa應用。檢視主要是用ejs模版引擎加上json資料進行渲染。js檔案載入採用amd模式非同步載入,包依賴管理使用bower工具。

系統樣式渲染用sass編寫scss,之後用grunt構件工具將scss編譯成css檔案

系統運用restful api架構風格。服務端用express框架提供資料介面,配合backbone中model和collection的互動操作,主要是獲取,更新,儲存,刪除等。拋開了mogodb儲存,結合node的file模組使用文字檔案儲存,自己需要實現與backbone對應的一些model,例如,blog物件,以及blogschema物件等,blogschema是操作blog的封裝物件,主要封裝了curd操作,每一類操作都有對應的asynchronous和synchronous函式。本來是剛開始都用monogodb和mongoose做好了,後來想著自己試著實現乙個orm物件,可以多學習一點,多折騰一點。

文章發表是我只需要寫markdown檔案,上傳即可。採用github上的marked將markdown檔案轉成html,用hignlight.js著色。

管理員認證過程沒有使用現有的passport模組,而是自己用node的crypto模組,用aes-128-cbc進行加密和解密。將使用者名稱和密碼以及有效時間用空格加在一起加密,設定到cookie中。後續需要認證的操作都在router中加上認證校驗即可。

由於管理員認證是通過cookie和crypto實現的,那麼就很容易被crsf攻擊。這方面,在管理員頁面中動態生成乙個token,傳遞到前端,後續前端的每次有許可權校驗的操作都需要把這個token放在header中傳遞,服務端獲取這個token,加以驗證。

測試框架使用mocha,斷言庫使用chai。

最後就是專案構建工具了。grunt構建工具負責專案的ejs預編譯,sass的編譯,靜態資源的concat,min,uglify,copy,rev等,以及express的啟動和熱載入,以及專案的打包和發布。grunt官網中都提供了非常豐富的外掛程式,以及詳細介紹說明,詳見官網檢視吧。本次專案用的grunt檔案,略圖如下,

好了,通過前面的編碼,系統已經初步完成了。現在需要部署發布到線上了。本來很少的工資,害的忍心到阿里雲購買了最低配置的伺服器,1g單核的,寬頻1mbps,也不需要什麼多核去做負載均衡了,也沒有買cdn加速快取了。自己的站點,自己都很少去逛,估計別人也不會逗留多長時間?。聽說,現在的對碼農的要求都是熟悉linux環境,由於以前是做.net的,玩的都是window系統,所以,這次,買的伺服器是centos最新版的7.2 64位。首先安裝了nginx,用作反向**,配置如下圖,接著安裝了node,又安裝了pm2,又安裝了unzip。最後終於搞完了。什麼都自己動手做一下,收穫還是很多的。

使用jQuery外掛程式flexigrid搭建專案框架

今天來了,不能懶,該寫就寫 1.既然是要用jquery的js 那就要放入專案中 2.使用方式jsp js 3.呼叫後台 function buttons sortname id sortorder asc usepager true,userp true,checkbox true,是否要多選框 r...

oracle使用expdp和impdp搭建資料庫

檢視幫助 expdp help parallel 是並行數,expdp和impdp都可以使用這個引數 expdp匯出 1.建立資料幫浦路徑 sql create or replace directory imostdb as opt oracle imost directory created.需確...

layer list和shape的混搭使用

layer list和selector一樣,是乙個xml檔案資源,其效果就是覆蓋,和單幀布局一樣的效果,這個是乙個修剪的效果,其實就是覆蓋的意思,你拉動它多少,它覆蓋多少.其中的shape中有幾個屬性 1 gradient 設定子節點,裡面可以設定初始顏色,中間顏色,結束的顏色,漸變的過程 2 si...