Express請求處理管線 隨筆

const   exp = require('express'),
        app = exp()

function utf8(req, res, next){
    // res.set()設置響應頭,
    // 還能夠寫成res.set({})批量設置響應頭
    // 在Content-Type響應頭中設置編碼能夠解決亂碼問題
    res.set('Content-Type', 'text/html; charset=utf-8')
    
    console.log('設置字符編碼')
    
    // 將請求交給下一個函數處理
    next()
}

function first(req, res, next){
    console.log('我是第一個處理請求的函數')
    next()
}

function second(req, res, next){
    console.log('我是第2個處理請求的函數')
    next()
}

function third(req, res, next){
    console.log('我是第3個處理請求的函數')
    next()
}

app.get('/', third, first, second, (req, res) => {
    res.end('我是最後一個處理請求函數')
})


// 中間部分還能夠寫成數組
// app.get('/', [utf8, first, second, third], (req, res) => {
//     res.end('我是最後一個處理請求函數')
// })

app.get('/hi/:age', utf8, first, second, third, (req, res) => {
    var name = req.query.name
    var age = req.params.age
    
    // 獲取客戶端數據:
    // 一、獲取url中的querystring(?後面的name=value,經過GET方法發送)
    //     req.query.name
    // 二、獲取請求體中的數據(經過POST方法發送,有多種編碼方式)
    //     req.body.name
    //     若是是 urlencoded 編碼須要使用 body-parser 模塊
    //     若是是 multipart/form-data 須要使用 multer 模塊
    // 三、獲取cookie中的數據
    //     req.cookies.name
    //     須要使用 cookie-parser 模塊
    // 四、獲取請求頭中的數據
    //     req.get('name')
    // 五、獲取url路徑Path中的數據
    //     req.params.age
    //     須要設置請求地址模式   '/hi/:age'
    
    // 將參數放入Path相對於將參數放入QueryString
    // 更加容易被人和搜索引擎識別
    // 所以被稱爲友好URL,friendly url   
    res.end(`你好${name}, ${age},很高興認識你`)
})

app.listen(3000, () => console.log('正在運行...'))

 


Administrator@HJL MINGW64 ~/Desktop/Express請求處理管線和友好URL
$ node server
正在運行...
我是第3個處理請求的函數
我是第一個處理請求的函數
我是第2個處理請求的函數html

相關文章
相關標籤/搜索