基于Vue+express的博客項(xiàng)目

一個(gè)前端基于Vue2.0全家桶稿辙,后端基于Express+Mongodb的前后端分離博客包晰。前端界面使用了flexbox+rem布局齐邦,后端界面使用了element ui赴穗。本項(xiàng)目可以作為一個(gè)前端進(jìn)階項(xiàng)目憔四,從前端flexbox布局到前端框架的使用膀息,再到后端以及數(shù)據(jù)庫(kù),是一個(gè)打通前后端流程的一個(gè)項(xiàng)目了赵。由于最近剛換了域名潜支,正在備案中,所以目前沒有線上演示柿汛,不過可以看一下下面的動(dòng)態(tài)圖特效冗酿。

特點(diǎn)

  • 支持 MarkDown 編輯
  • 支持代碼高亮
  • 支持移動(dòng)端瀏覽

在線地址

功能展示展示

PC前臺(tái)博客演示

image

移動(dòng)端前臺(tái)演示

image

后臺(tái)管理演示

image

若圖片無法顯示則點(diǎn)擊這里:pc前端功能展示 移動(dòng)前端功能展示pc后端功能展示

前端工具

  • Vue2.0
  • Vue-Router
  • Vuex
  • axios
  • element ui

前端布局采用flexbox+rem布局,關(guān)于flexbox請(qǐng)閱讀一個(gè)完整的Flexbox指南以及這篇最新的理解Flexbox:你需要知道的一切

本項(xiàng)目還采用了手機(jī)端適配络断,關(guān)于移動(dòng)端的學(xué)習(xí)資料請(qǐng)按照我下面羅列的資料按順序仔細(xì)閱讀裁替。

  1. 移動(dòng)端調(diào)試
  2. 介紹vieport
  3. 使用Flexible實(shí)現(xiàn)手淘H5頁(yè)面的終端適配

后端工具

  • express
  • mongodb(mongolass)

后端的管理界面我直接使用了element ui這個(gè)基于vue的組件庫(kù),很強(qiáng)大.

目錄結(jié)構(gòu)

│  .babelrc
│  .editorconfig
│  .eslintignore
│  .eslintrc.js
│  .gitignore
│  index.html
│  package.json
│  README.md
│
├─build
│      build.js
│      check-versions.js
│      dev-client.js
│      dev-server.js
│      utils.js
│      webpack.base.conf.js
│      webpack.dev.conf.js
│      webpack.prod.conf.js
│
├─config
│      dev.env.js
│      index.js
│      prod.env.js
│      test.env.js
│
├─server                        后端文件夾
│  │  .env
│  │  app.js    后端入口
│  │
│  ├─api
│  │      index.js  后端api
│  │
│  ├─lib
│  │      mongo.js 數(shù)據(jù)庫(kù)
│  │
│  ├─middleware
│  │      checkToken.js
│  │      createToken.js
│  │
│  └─routes                 后端路由
│          admin.js
│          article.js
│          classify.js
│          index.js
│          login.js
│          reg.js
│
├─src       前端文件夾
│  │  App.vue
│  │  main.js   前端入口
│  │
│  ├─api    前端api
│  │      index.js
│  │
│  ├─assets
│  │  ├─css
│  │  │      commen.css
│  │  │      default.css
│  │  │      default0.css
│  │  │      highlight.css
│  │  │
│  │  ├─img
│  │  │      bg.jpg
│  │  │      bgm.jpg
│  │  │
│  │  └─js
│  │          commen.js
│  │          highlight.pack.js
│  │          hljs.js
│  │
│  ├─components
│  │  │  NotFound.vue
│  │  │
│  │  ├─backEnd             后端界面
│  │  │      Admin.vue
│  │  │      ArticleCreate.vue
│  │  │      ArticleEdit.vue
│  │  │      ArticleList.vue
│  │  │      ClassList.vue
│  │  │      Login.vue
│  │  │      Reg.vue
│  │  │
│  │  └─fronted             前端界面
│  │          About.vue
│  │          Article.vue
│  │          Front.vue
│  │          Home.vue
│  │          Tags.vue
│  │          vfooter.vue
│  │          vheader.vue
│  │
│  ├─routes             前端路由vue-router
│  │      index.js
│  │      routes.js
│  │
│  └─store             前端vuex
│      │  actions.js
│      │  index.js
│      │  MsgAlert.js
│      │  mutations.js
│      │  states.js
│      │  types.js

Step

環(huán)境

克隆遠(yuǎn)程庫(kù)

git clone https://github.com/elva2596/vueBlog.git

安裝前端依賴

npm install

全局安裝supervisor

npm install -g supervisor

啟動(dòng)mongodb服務(wù)器

在你安裝的數(shù)據(jù)庫(kù)文件中的bin目錄中啟動(dòng)

mongod

安裝后端依賴

進(jìn)入到server文件夾下貌笨,安裝后端依賴:npm install

啟動(dòng)后端服務(wù)器

npm start

啟動(dòng)前端項(xiàng)目

回到項(xiàng)目根目錄下運(yùn)行:npm run dev

生成發(fā)布

npm run build

Notice

  • 前后端啟動(dòng)時(shí)的路徑不一樣弱判,前端在項(xiàng)目根目錄,后端在servser根目錄锥惋,其實(shí)可以把后端分離出來昌腰。
  • 因?yàn)槭乔昂蠖朔蛛x項(xiàng)目,必然涉及到跨域膀跌,使用webpack的proxyTable,進(jìn)入到config文件夾的index.js,將proxyTable配置成:
    proxyTable: { '/api':{ target:'http://localhost:3009/api', changeOrigin:true, pathRewrite:{ '^/api':'' } } },
  • 推薦Robomongo作為數(shù)據(jù)庫(kù)的可視化管理工具
  • 推薦Postman作為驗(yàn)證restful API的工具遭商,請(qǐng)參考這篇文章
  • 這里的主頁(yè)界面有個(gè)小小的bug,主頁(yè)只顯示每篇具體文章的摘要,在這里我取了一個(gè)巧淹父,就是將從后端返回的數(shù)據(jù)經(jīng)過markdown解析以后株婴,用了一個(gè)正則把第一個(gè)p標(biāo)簽以及其中的內(nèi)容給提取出來渲染到頁(yè)面。因此后端在添加文章的時(shí)候必須在編寫每篇文章的開頭寫一段話暑认。因?yàn)楫吘惯@個(gè)博客只是一個(gè)第一版困介,后面我會(huì)把這個(gè)問題解決掉。

Todo

  • 移動(dòng)端優(yōu)化蘸际,300ms
  • 添加評(píng)論功能
  • 密碼修改功能
  • 用戶權(quán)限分類

License

MIT

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末座哩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粮彤,更是在濱河造成了極大的恐慌根穷,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件导坟,死亡現(xiàn)場(chǎng)離奇詭異屿良,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)惫周,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門尘惧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人递递,你說我怎么就攤上這事喷橙∩睹矗” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵贰逾,是天一觀的道長(zhǎng)悬荣。 經(jīng)常有香客問我,道長(zhǎng)疙剑,這世上最難降的妖魔是什么氯迂? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮核芽,結(jié)果婚禮上囚戚,老公的妹妹穿的比我還像新娘酵熙。我一直安慰自己轧简,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布匾二。 她就那樣靜靜地躺著哮独,像睡著了一般。 火紅的嫁衣襯著肌膚如雪察藐。 梳的紋絲不亂的頭發(fā)上皮璧,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音分飞,去河邊找鬼悴务。 笑死,一個(gè)胖子當(dāng)著我的面吹牛譬猫,可吹牛的內(nèi)容都是我干的讯檐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼染服,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼别洪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柳刮,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤挖垛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后秉颗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痢毒,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蚕甥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哪替。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梢灭,死狀恐怖夷家,靈堂內(nèi)的尸體忽然破棺而出蒸其,到底是詐尸還是另有隱情,我是刑警寧澤库快,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布摸袁,位于F島的核電站,受9級(jí)特大地震影響义屏,放射性物質(zhì)發(fā)生泄漏靠汁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一闽铐、第九天 我趴在偏房一處隱蔽的房頂上張望蝶怔。 院中可真熱鬧,春花似錦兄墅、人聲如沸踢星。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沐悦。三九已至,卻和暖如春五督,著一層夾襖步出監(jiān)牢的瞬間藏否,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工充包, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留副签,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓基矮,卻偏偏與公主長(zhǎng)得像淆储,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愈捅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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