Express 中間件的格式
定義中間件函式
// 定義一個簡單的中間件函式
const mw = (req, res, next) => {
console.log('這是一個簡單的中間件函式');
// 把流轉關系,轉交給下一個中間件或者路由
next()
}
// 定義一個簡單的中間件函式
const mw = (req, res, next) => {
console.log('這是一個簡單的中間件函式');
// 把流轉關系,轉交給下一個中間件或者路由
next()
}
app.use(mw)
定義多個全域中間件
app.use(function (req, res,next){
console.log('呼叫第一個全域中間件');
next()
})
app.use(function (req, res,next){
console.log('呼叫第二個全域中間件');
next()
})
app.get('/user', (req, res) => {
// 請求這個路由,會依次觸發上述兩個全域中間件
res.send('home page')
})
// 定義中間件函式 mv1
const mv1 = (req, res, next) => {
console.log('這是1中間件函式');
next()
}
// mv1 這個中間件只在"當前路由中生效",這種用法屬于"區域生效的中間件"
app.get('/', mv1,function (req, res) {
res.send('Home page')
})
//mv1 這個中間件不會影響下面這個路由
app.get('/user', function (req, res) {
res.send('User page')
})
const express = require('express')
const app = express()
// 定義中間件函式 mv1
const mv1 = (req, res, next) => {
console.log('這是1中間件函式');
next()
}
const mv2 = (req, res, next) => {
console.log('這是2中間件函式');
next()
}
// mv1 這個中間件只在"當前路由中生效",這種用法屬于"區域生效的中間件"
// 多個區域中間件,使用陣列形式也可以
// app.get('/', [mv1,mv2], function (req, res)
app.get('/', mv1,mv2,function (req, res) {
console.log('ok');
res.send('Get user list')
})
app.get('/user', function (req, res) {
res.send('Get user list')
})
app.listen(3001, () => {
console.log('http://127.0.0.1:3001');
})
const express = require('express')
const app = express()
// 定義全域生效的中間件
// 中間件作用:共享同一份 req,res
app.use(require('./13.custom-body-parser'))
app.post('/login', (req, res) => {
console.log(req.body);
})
app.listen(3001, () => {
console.log('http://127.0.0.1:3001');
})
// nodejs 內置模塊 querystring --->將查詢字串格式的資料決議為物件格式
const qs = require('querystring')
module.exports = (req, res, next) => {
// 處理 post 提交過來的資料 處理的資料 掛載到 req.body 身上
let str = '';
// data事件分批次接受到客戶端提交過來的資料
req.on('data', (chunk) => {
str += chunk
})
// 當end事件被觸發了 就表示資料已經傳遞完了
req.on('end', () => {
// console.log(str);
req.body = qs.parse(str)
next()
})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/308833.html
標籤:其他
上一篇:在 Vue 中如何使用 JSX,就這么簡單!【建議收藏】
下一篇:分享一下Vue基本語法
