1. 程式人生 > >基於node.js的部落格搭建

基於node.js的部落格搭建

一個部落格應當具備哪些功能?

前臺展示

  • 點選下一頁,可以點選分類導航。
  • 可以點選進入到具體博文頁面
  • 下方允許評論。顯示發表時間。允許留言分頁。
  • 右側有登入註冊介面。

後臺管理

  • 管理員賬號:登陸後看到頁面不一樣,有後臺頁面。
  • 允許新增新的分類。從後臺新增新的文章。
  • 編輯允許markdown寫法。
  • 評論管理。

安裝模組

  • Express

    一個簡潔靈活的node.js WEB應用框架,提供一系列強大的特性幫助我們建立web應用。

  • Mongodb

    用於儲存產生的資料

  第三方模組和中介軟體:

  • bodyParser,解析post請求資料
  • cookies:讀寫cookie
  • swig:模板解析引擎
  • mongoose:操作Mongodb資料
  • markdown:語法解析生成模組

 建立應用

const express=require('express')
const app=express()
app.get('/',(req,res,next)=>{
  res.send('<h1>歡迎光臨我的部落格!</h1>')            // req:request物件,儲存客戶請求相關的一些資料——http.request 
                              // res:response物件,服務端輸出物件,停工了一些服務端相關的輸出方法——http.response
                              // next:方法,用於執行下一個和路徑相匹配的函式(行為)。
}) app.listen(
8010,()=>{ console.log('123') })

在Express框架下,可以通過app.get()app.post()等方式,把一個url路徑和(1-n)個函式進行繫結。當滿足對應的規則時,對應的函式將會被執行,該函式有三個引數res,req,next

模板引擎的配置和使用

// 定義模板引擎,使用swig.renderFile方法解析字尾為html的檔案
var swig=require('swig');
app.engine('html',swig.renderFile);

// 設定模板存放目錄
app.set('views','./views');
// 註冊模板引擎 app.set('view engine','html'); swig.setDefaults({cache:false});

配置模板的基本流程是:

請求swig模組=>定義模板引擎=>註冊模板引擎=>設定除錯方法

我們可以使用var swig=require('swig');定義了swig方法。

以下進行逐行解析——

定義模板引擎

app.engine('html',swig.renderFile);

第一個引數:模板引擎的名稱,同時也是模板引擎的字尾,你可以定義開啟的是任何檔案格式,比如json,甚至tdl等。
第二個引數表示用於解析處理模板內容的方法。
第三個引數:使用swig.renderFile方法解析字尾為html的檔案。

設定模板目錄

現在就用express元件提供的set方法標設定模板目錄:

app.set('views','./views');

定義目錄時也有兩個引數,注意,第一個引數必須views!第二個引數可以是我們所給出的路徑。因為之前已經定義了模板資料夾為views。所以,使用對應的路徑名為./views

註冊模板引擎

app.set('view engine','html');

還是使用express提供了set方法。
第一個引數必須是字串'view engine'
第二個引數和app.engine方法定義的模板引擎名稱(第一個引數)必須是一致的(都是“html”)。