前端全棧最好的實踐-設計開發屬于自己的nodejs博客

我本是一名文科專業半路出家的前端開發人員,從最初只會切圖和寫CSS、Html到現在會寫點JS,一路坑坑洼洼,也是經歷了很多,從2010年開始就用WordPress開設了自己的博客,雖然內容零零散散的并不多,但是多多少少也留下了時光的縮影,一直希望自己有一個自留地。用Node.js做服務端替換WordPress是去年的一個想法,由于一直騰不出時間,所以拖到了現在。當然了WordPress作為全球用戶量最廣的開源博客程序,易用性等諸多好處無可厚非,光自己的博客在過去幾年就用了很多套模板,也用它做過很多不同風格不同功能的網站, 也許Node.js不是個人博客的最好的開發語言選擇,不管是情懷還是其他,我相信一定有前端開發人員跟我一樣有想過這樣的嘗試。市面上開源的博客程序很多,UI模板也相當漂亮,但是自己開發一個屬于自己的博客程序,沒事的時候折騰折騰,可能會是一件比較美好的事情,最主要的目的是在其折騰的過程中,可以多嘗試服務端的功能開發,這對從一個純前端轉向全棧開發工程師是非常好的實踐。 git上面有很多開源的Node.js源碼,教程也比較詳細,有的功能全面,有的相對簡約,當然每個人只要選擇適合自己的就好,下面簡單介紹下我的項目,從技術角度而言,深度有限,大神多提意見。

架構

項目沿用傳統的MVC,比較古老的架構,model(對象模型),view(視圖),controller(控制器),model通俗的說就是數據庫表字段的映射,view就是界面,UI,controller就是操作數據庫,一般是接收到路由信息,然后對數據庫進行操作,再把數據返回給view層。如果是熟悉后端的開發人員可能一眼就看的懂,不過對于沒有做過后端開發的純前端人員來說,可能需要一些時間去消化。想起我第一次做全棧開發,一個存儲CCTV配置數據的項目,基于c#和sqlserver,也是標準的MVC架構,很簡單的增刪改查,是廢了不少功夫。

數據庫

數據庫這塊用的MongoDB,為什么用它,因為簡單好用,再就是它是在非關系數據中功能最豐富,最像關系數據庫的。操作數據庫的工具用了mongoose,api易讀,很容易上手。之前是wordpress用的mysql,導出數據到MongdoDB確實沒什么特別的好的方法和工具,嘗試用了一些工具和腳本,效率不高,最后還是手工完成的,好在本人比較懶,那么多年沒幾篇內容。

WEB框架和模板

后端用了Express的web框架,頁面渲染部分是handlebars模板,個人感覺{{}}大括號的寫法比較適合前端開發人員,但是handlebars模板是個弱邏輯語言,有一些不方便,需要helper,特別是分頁和評論,邏輯特別復雜,不過如果你喜歡hb模板,可以去git上下helper的庫。jade模板(現在改成pug了)會比較方便一些,對一些復雜邏輯的處理比較高效,主要是可以直接在模板中寫js語法,但是縮進的寫法不是每個前端開發都能習慣的。

前端

如今的前后端分離,MV*框架,工程化,模塊化,這些概念大行其道,如果一個做前端的不知道這幾個概念,恐怕工作都難找到。但是這個項目沒有前后端分離,直接在后端渲染頁面,也沒有用MVVM框架,工程化和模塊化就更不用說了,后臺頁面用了一個jQuery和BootStrap和一些插件,前臺頁面好像就一個jQuery,CSS基本手寫,我相信前端開發人員看到會比較親切。我的初衷是希望通過這個項目了解更多后端開發思路和模式,其次個人博客是個傳播源,在后端渲染也是為了利于SEO。

原理

我這里簡單從一個頁面打開到完全加載,程序做了哪些事去論述一下整個項目工作原理,當你打開博客的一個頁面,node.js在后端通過路由機制(express提供的路由模塊)去匹配到這個頁面的url,然后查找對應的controller(就是處理這個URL的函數),在這個controller函數中,對數據庫進行一些過濾篩選(用mongoose對數據庫進行操作)最終拿到頁面需要的數據,然后再把數據傳遞給對應的模板(handlebars),最終渲染成HTML。

由于時間倉促,博客的功能可能比較簡陋,但是基本的功能已經滿足了,另外項目也有很多沒用到的函數和接口,來不及整理,留待以后擴展吧。?博客demo這是我的博客git地址https://github.com/frogo/blog,歡迎大家star和fork,

Screenshot



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • 咧嘴而笑的他或者她,讓我一陣陣惶恐不安,似乎笑靨如花的背后是深不見底的荒涼,似乎我一晃神,那笑容就會裹挾著我沖向不...
    饒舌的啞巴閱讀 611評論 0 0
  • 今天我重生了,感謝自己,可以有走出來的的勇氣,感謝家人,一如既往的對我好,感恩老公,他在用行動在向我證明。
    落雪無塵閱讀 176評論 0 0
  • 很多年后 你或許會回想 回想曾在這個世上踏過的 步步驚心與悠然漫步 這個時候,你會想: 真好,來這世間走一遭 之后...
    如晤閱讀 153評論 1 1
  • 在業務邏輯較為多的系統中,為了能快速的排查線上的問題和清楚的查詢各個業務的日志信息,往往需要對不同業務線的日志進行...
    jd_steven閱讀 8,507評論 0 7