摘要:視圖主要是用模版引擎加上數(shù)據(jù)進(jìn)行渲染。服務(wù)端用框架提供數(shù)據(jù)接口,配合中和的交互操作,主要是獲取,更新,保存,刪除等。測試框架使用斷言庫使用。本次項(xiàng)目用的文件,略圖如下,好了,通過前面的編碼,系統(tǒng)已經(jīng)初步完成了?,F(xiàn)在需要部署發(fā)布到線上了。
myblog
博客站點(diǎn)地址:http://www.snayan.com。項(xiàng)目地址:https://github.com/snayan/myblog
本項(xiàng)目用到的主要技術(shù)棧:backbone+sass+node+mocha+chai+grunt。
codingbackbone
系統(tǒng)前端交互邏輯與視圖渲染,運(yùn)用collection,model,view,router,等backbone的特性,快速開發(fā)SPA應(yīng)用。視圖主要是用ejs模版引擎加上json數(shù)據(jù)進(jìn)行渲染。js文件加載采用AMD模式異步加載,包依賴管理使用bower工具。
sass
系統(tǒng)樣式渲染用sass編寫scss,之后用grunt構(gòu)件工具將scss編譯成css文件
node
系統(tǒng)運(yùn)用RESTFUL API架構(gòu)風(fēng)格。服務(wù)端用express框架提供數(shù)據(jù)接口,配合backbone中model和collection的交互操作,主要是獲取,更新,保存,刪除等。拋開了mogodb存儲,結(jié)合node的file模塊使用文本文件存儲,自己需要實(shí)現(xiàn)與backbone對應(yīng)的一些model,例如,blog對象,以及blogSchema對象等,blogSchema是操作blog的封裝對象,主要封裝了CURD操作,每一類操作都有對應(yīng)的asynchronous和synchronous函數(shù)。本來是剛開始都用monogodb和mongoose做好了,后來想著自己試著實(shí)現(xiàn)一個ORM對象,可以多學(xué)習(xí)一點(diǎn),多折騰一點(diǎn)。
文章發(fā)表是我只需要寫markdown文件,上傳即可。采用github上的marked將markdown文件轉(zhuǎn)成html,用hignlight.js著色。
管理員認(rèn)證過程沒有使用現(xiàn)有的passport模塊,而是自己用node的crypto模塊,用aes-128-cbc進(jìn)行加密和解密。將用戶名和密碼以及有效時間用空格加在一起加密,設(shè)置到cookie中。后續(xù)需要認(rèn)證的操作都在router中加上認(rèn)證校驗(yàn)即可。
由于管理員認(rèn)證是通過cookie和crypto實(shí)現(xiàn)的,那么就很容易被CRSF攻擊。這方面,在管理員頁面中動態(tài)生成一個token,傳遞到前端,后續(xù)前端的每次有權(quán)限校驗(yàn)的操作都需要把這個token放在header中傳遞,服務(wù)端獲取這個token,加以驗(yàn)證。
mocha+chai
測試框架使用mocha,斷言庫使用chai。
grunt
最后就是項(xiàng)目構(gòu)建工具了。grunt構(gòu)建工具負(fù)責(zé)項(xiàng)目的ejs預(yù)編譯,sass的編譯,靜態(tài)資源的concat,min,uglify,copy,rev等,以及express的啟動和熱加載,以及項(xiàng)目的打包和發(fā)布。grunt官網(wǎng)中都提供了非常豐富的插件,以及詳細(xì)介紹說明,詳見官網(wǎng)查看吧。本次項(xiàng)目用的grunt文件,略圖如下,
publish好了,通過前面的編碼,系統(tǒng)已經(jīng)初步完成了?,F(xiàn)在需要部署發(fā)布到線上了。本來很少的工資,害的忍心到阿里云購買了最低配置的服務(wù)器,1G單核的,寬帶1mbps,也不需要什么多核去做負(fù)載均衡了,也沒有買CDN加速緩存了。自己的站點(diǎn),自己都很少去逛,估計(jì)別人也不會逗留多長時間?。聽說,現(xiàn)在的對碼農(nóng)的要求都是熟悉Linux環(huán)境,由于以前是做.net的,玩的都是window系統(tǒng),所以,這次,買的服務(wù)器是centos最新版的7.2 64位。首先安裝了nginx,用作反向代理,配置如下圖,接著安裝了node,又安裝了pm2,又安裝了unzip。最后終于搞完了。什么都自己動手做一下,收獲還是很多的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84348.html
摘要:本項(xiàng)目持續(xù)更新中,開源免費(fèi)與各位愛好技術(shù)達(dá)人共勉,注現(xiàn)階段仍在開發(fā)中。。。。。 NodeJS+Express+MongoDb開發(fā)的個人博客 NodeJS+Express搭建個人博客-環(huán)境搭建(一)NodeJS+Express搭建個人博客-gulp自動化構(gòu)建工具使用(二)NodeJS+Express搭建個人博客-Express+Mongodb組合架構(gòu)介紹(三)NodeJS+Express...
摘要:應(yīng)用的功能這個應(yīng)用是一個個人簡歷生成器。比較好的教程有這一個。這樣的命名污染問題自然顯而易見。而且發(fā)出多次請求也會影響性能。明顯不利于維護(hù)。然而我希望能夠不發(fā)生變化,因?yàn)槭窃谖募那疤嵯碌臉?biāo)簽頁,不能換一個標(biāo)簽就重建一個。 為什么學(xué)習(xí)backbone?這是個好問題。在這個前端框架爆炸的年代,比起backbone,對開發(fā)來說有更多更好的選擇,react,vue,angular等等。但這些...
摘要:沒有耐心閱讀的同學(xué),可以直接前往學(xué)習(xí)全棧最后一公里。我下面會羅列一些,我自己錄制過的一些項(xiàng)目,或者其他的我覺得可以按照這個路線繼續(xù)深入學(xué)習(xí)的項(xiàng)目資源。 showImg(https://segmentfault.com/img/bVMlke?w=833&h=410); 本文技術(shù)軟文,閱讀需謹(jǐn)慎,長約 7000 字,通讀需 5 分鐘 大家好,我是 Scott,本文通過提供給大家學(xué)習(xí)的方法,...
摘要:使用搭建個人博客作為一個技術(shù)人員,一般都會有寫一些博客,分享一些文章咱們做技術(shù)的就是愛分享。下面我就簡單講解一下在系統(tǒng)下如何使用搭建搭建個人博客網(wǎng)站。 使用Ghost搭建個人博客 作為一個技術(shù)人員,一般都會有寫一些博客,分享一些文章(咱們做技術(shù)的就是愛分享)。因此也誕生了非常多的開源博客系統(tǒng),比如像wordpress也是目前世界最流行,應(yīng)用最廣的一個天源博客系統(tǒng),有非常多的插件及模版。...
閱讀 3779·2021-09-02 09:53
閱讀 2758·2021-07-30 14:57
閱讀 3504·2019-08-30 13:09
閱讀 1206·2019-08-29 13:25
閱讀 817·2019-08-29 12:28
閱讀 1463·2019-08-29 12:26
閱讀 1137·2019-08-28 17:58
閱讀 3316·2019-08-26 13:28