自定義中介軟體
阿新 • • 發佈:2020-08-24
自定義中介軟體:
// 匯入express模組 const express = require('express') // 建立express的伺服器例項 const app = express() // 1. 匯入自己封裝的中介軟體模組 const customBodyParser = require('./017-custom-body-parser') // 2. 將自定義的中介軟體函式,註冊為全域性可用的中介軟體 app.use(customBodyParser) app.post('/user', (req, res) => { res.send(req.body) }) // 匯入Node.js內建的querystring模組const qs = require('querystring') // 解析表單資料的中介軟體 app.use((req, res, next) => { // 定義中介軟體具體的業務邏輯 // 1.定義一個str字串,用來儲存客戶端發過來的請求體資料 let str = '' // 2.監聽req的data事件 req.on('data', (chunk) => { // 憑藉請求體資料,隱式轉換為字串 str += chunk }) // 3.監聽req的end事件 req.on('end', () => {// 在str中儲存的是完整的請求體資料 // console.log(str) // 呼叫qs.parse() 方法 把查詢字串解析為物件格式 const body = qs.parse(str) req.body = body next() }) }) app.post('/user', (req, res) => { res.send(req.body) }) // 呼叫app.listen方法,指定埠號並啟動web伺服器 app.listen(80, () => { console.log("running http://127.2.1.1") })