從零開始使用express搭建博客系統(tǒng)(二):博客前臺(tái)功能實(shí)現(xiàn)

這篇文章主要給大家分析一下此博客系統(tǒng)前端的搭建盒齿,我會(huì)分析幾個(gè)我碰到的問題及一些常用的插件

具體的代碼我就不一一貼上來了,大家可以參考:博客系統(tǒng)的源碼

整體的博客系統(tǒng)前端的效果如下圖

效果圖

一:前端頁(yè)面的搭建

主要是通過bootstrap源碼下載中的docs/examples/文件下blogdashboard兩個(gè)文件。

bootstrap1.png
bootstrap1.png

將這兩個(gè)主題中的index.html通過將html轉(zhuǎn)換為jade轉(zhuǎn)化為相應(yīng)的jade阅茶,關(guān)于jade的規(guī)則大家可以參考jade官網(wǎng),我們?cè)?code>public/css下對(duì)相應(yīng)的css的編寫谅海。


二:連接數(shù)據(jù)庫(kù)與設(shè)計(jì)表

首先需要安裝Mongodb脸哀,大家可以參考如何安裝MongoDB,相應(yīng)相應(yīng)的客戶端管理工具扭吁,我使用的是Robo 3T撞蜂。

  • 創(chuàng)建相應(yīng)的數(shù)據(jù)庫(kù)

  • 建表,即使用Mongoose建立相應(yīng)的Schema

    我們會(huì)建立三個(gè)表侥袜,user蝌诡,postcategories

    post表:

    post表

    user表:

    user表

    categories表:

    catagories表

    關(guān)于表的字段type枫吧,這里就不細(xì)講了浦旱,大家可以參考Mongoose簡(jiǎn)要API中的字段類型解釋

  • 修改config下相應(yīng)的數(shù)據(jù)庫(kù)的名字九杂,填上我們剛剛的數(shù)據(jù)庫(kù)名颁湖,這樣我們就能連上我們的數(shù)據(jù)庫(kù)了。


三:使用node實(shí)現(xiàn)blog的后端邏輯

blog的路由如下圖:

前端路由表

這里主要就是對(duì)于mongoose的使用例隆,我這里就提一下三個(gè)點(diǎn)甥捺,其他的我會(huì)附上相應(yīng)的文檔,大家可以參考镀层。

  • populate的用法:與關(guān)系型數(shù)據(jù)庫(kù)中的外健作用一樣镰禾。

    post舉例,我們有post表與user表,mongodbnoSql吴侦,他沒有外鍵這一個(gè)定義谷饿,當(dāng)我們查找post表的時(shí)候,如果要用到user表的數(shù)據(jù)的時(shí)候妈倔,就可以使用populate了。如下圖:

    posts數(shù)據(jù)
  • mongoose對(duì)于數(shù)據(jù)庫(kù)的操作

    在代碼中使用到的最多的是model.find()绸贡,model.findOne()盯蝴,model.save(),分別是查找所有的听怕,查找一個(gè)捧挺,保存方法。

    對(duì)于mongoose的鏈接數(shù)據(jù)庫(kù)的方法尿瞭,這篇文章大家可以參考:Mongoose簡(jiǎn)要API闽烙。
    ?

  • 分頁(yè)的實(shí)現(xiàn)

    后端的實(shí)現(xiàn)如下圖,我們?cè)诤笈_(tái)默認(rèn)設(shè)置的pageSize10声搁。

    分頁(yè) node

    前端jade的寫法就是得到后端傳過來的pageNum黑竞、pageCount,即是第幾頁(yè)和總共有有幾頁(yè)疏旨,后臺(tái)我們默認(rèn)設(shè)置的是每頁(yè)顯示10條很魂。

    分頁(yè) jade

四,碰到的問題

  • 需要將config.js里面的文件指向修改一下

    之前:
    var controllers = glob.sync(config.root + '/app/controllers/*.js');
    現(xiàn)在
    var controllers = glob.sync(config.root + '/app/controllers/**/*.js');
    

    如下圖:

    express的控制器config
  • 信息提示——connect-flash

    需要使用到相應(yīng)的依賴檐涝。

    首先安裝:

    npm install connect-flash --save-dev
    

    然后在項(xiàng)目中引用依賴:

    var flash = require('connect-flash'); 
    app.use(flash());             //Express使用這個(gè)插件 
    

    在相應(yīng)的jade模版引用:

    req.flash('info', '評(píng)論添加成功')
    
    提示插件

    ?

  • 隨即數(shù)據(jù)生成遏匆,方便我們測(cè)試

    隨機(jī)數(shù)據(jù)生成

    這個(gè)data.js是為了幫助我們隨機(jī)插入大量文章數(shù)據(jù),方便我們的測(cè)試谁榜。

    我們需要安裝幾個(gè)依賴:

    npm install lorem-ipsum slug --save-dev // 這兩個(gè)依賴是幫助我們生成隨機(jī)數(shù)據(jù)的幅聘。
    

    具體的實(shí)現(xiàn)方法大家可以參考代碼。

    然后進(jìn)入相應(yīng)的目錄窃植,執(zhí)行如下語(yǔ)句就能隨機(jī)插入數(shù)據(jù):

    node data.js
    

    效果如下圖:

    效果

結(jié)語(yǔ):此篇文章是我參考網(wǎng)上的一個(gè)express課程帝蒿,學(xué)習(xí)課上老師的思路做的,如果大家有什么不明白的地方撕瞧,我們可以使用簡(jiǎn)信交流哦陵叽。

文章中加了自己的一些思考以及一些常見的問題,希望能給大家?guī)硪稽c(diǎn)幫助丛版。

來自一個(gè)奔跑在前端路上的前端小白巩掺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市页畦,隨后出現(xiàn)的幾起案子胖替,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件独令,死亡現(xiàn)場(chǎng)離奇詭異端朵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)燃箭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門冲呢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人招狸,你說我怎么就攤上這事敬拓。” “怎么了裙戏?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵乘凸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我累榜,道長(zhǎng)营勤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任壹罚,我火速辦了婚禮葛作,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渔嚷。我一直安慰自己进鸠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布形病。 她就那樣靜靜地躺著客年,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漠吻。 梳的紋絲不亂的頭發(fā)上量瓜,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音途乃,去河邊找鬼绍傲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛耍共,可吹牛的內(nèi)容都是我干的烫饼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼试读,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼杠纵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钩骇,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤比藻,失蹤者是張志新(化名)和其女友劉穎铝量,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體银亲,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慢叨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了务蝠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拍谐。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖馏段,靈堂內(nèi)的尸體忽然破棺而出赠尾,到底是詐尸還是另有隱情,我是刑警寧澤毅弧,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站当窗,受9級(jí)特大地震影響够坐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崖面,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一元咙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巫员,春花似錦庶香、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至七扰,卻和暖如春奢赂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颈走。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工膳灶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人立由。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓轧钓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親锐膜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子毕箍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容