使用 node+backbone搭建個人博客系統
myblog
本項目用到的主要技術棧:backbone+sass+node+mocha+chai+grunt。
codingbackbone
系統前端交互邏輯與視圖渲染,運用collection,model,view,router,等backbone的特性,快速開發SPA應用。視圖主要是用ejs模版引擎加上json數據進行渲染。js文件載入採用AMD模式非同步載入,包依賴管理使用bower工具。
sass
系統樣式渲染用sass編寫scss,之後用grunt構件工具將scss編譯成css文件
node
系統運用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
測試框架使用mocha,斷言庫使用chai。
grunt
最後就是項目構建工具了。grunt構建工具負責項目的ejs預編譯,sass的編譯,靜態資源的concat,min,uglify,copy,rev等,以及express的啟動和熱載入,以及項目的打包和發布。grunt官網中都提供了非常豐富的插件,以及詳細介紹說明,詳見官網查看吧。本次項目用的grunt文件,略圖如下,
publish好了,通過前面的編碼,系統已經初步完成了。現在需要部署發布到線上了。本來很少的工資,害的忍心到阿里雲購買了最低配置的伺服器,1G單核的,寬頻1mbps,也不需要什麼多核去做負載均衡了,也沒有買CDN加速緩存了。自己的站點,自己都很少去逛,估計別人也不會逗留多長時間??。聽說,現在的對碼農的要求都是熟悉Linux環境,由於以前是做.net的,玩的都是window系統,所以,這次,買的伺服器是centos最新版的7.2 64位。首先安裝了nginx,用作反向代理,配置如下圖,接著安裝了node,又安裝了pm2,又安裝了unzip。最後終於搞完了。什麼都自己動手做一下,收穫還是很多的。
※UglifyJS——對你的js做了什麼
※多線程之策略模式
※利用Fiddler修改請求信息通過Web API執行Dynamics 365操作(Action)實例
※在linux中安裝git,並將代碼發布到github
TAG:科技優家 |
※Facebook透露內部Fabric Aggregator分散式網路系統設計
※Google推出平板電腦Chromebook Tab 10,搭載Chrome OS系統
※Google Android Wear智能手錶操作系統更名為Wear OS by Google
※Nokia 7+曝光採用Android One系統
※Full Throttle購置Funktion One Vero系統
※Google宣布其內部的Linux桌面操作系統將從Ubuntu轉到Debian
※Google決定用gLinux取代Goobuntu Linux操作系統
※雷神911最新的6代機重裝系統提示no bootable device.systemstop修改bios教程
※Surface Phone蹤跡再現:運行Andromeda系統
※Google 的新操作系統 Fuchsia OS 的非官方的 Web版Demo 釋出
※Inside Xbox 新聞回顧:Xbox系統迎來AMD FreeSync技術
※Magic Leap One操作系統或叫Lumin
※任天堂 Switch 遭 fail0verflow 黑客組織破解,已可運行 Linux 系統
※Xbox One系統未來將支持FreeSync技術
※傳微軟Surface Phone摺疊手機或將搭載Windows 10操作系統
※諾基亞8 Sirocco vs蘋果iPhone X,iPhone X系統成王牌?
※微軟為 Linux 子系統提供 Windows Defender 防火牆
※華碩ZenFone Live L1發布:預裝Android Go系統
※多區塊鏈證明系統——Telegram Open Network
※「Inside Xbox」Xbox One春季更新全新功能公布 支持Freesync技術新Avatar系統測試中