中间件

express框架————中间件

express是一个自身功能极简,完全是由路由和中间件构成的一个web开发框架:从本质上来说:一个Express框架就是在调用各种中间件。

中间件:就是处理过程中的一个环节(本质上就是一个函数)
中间件的挂载方式:use和路由方式(get、post、put、detele)

应用级中间件(通过use方式加载中间件)
1
2
3
4
5
6
7
8
9
10
11
12
13
const express = require('express')
const app = express()
app.use('./user', (req, res, next) => {//其中'./user'是访问路径
    //记录访问时间
    console.log(Date.now())
    //next方法的作用就是把请求传递到下一个中间件
    next()
})
app.use('./user', (req, res, next) => {
    //记录访问日志
    console.log('访问了/user')
    next()
})
路由级中间件(通过路由的方式加载中间件)

路由方式:get、post、put、delete

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const express = require('express')
const app = express()
//多个回调函数可以处理一条路由(确保指定了next对象)
app.get('./abc', (req, res, next) => {
    console.log(1)
    next()
}, (req, res, next) => {
    console.log(2)
    //跳转到下一个路由
    next('route')
}, (req, res) => {
    console.log(3)
    res.send('abc')
})
app.get('/abc', (req, res) => {
    console.log(4)
    res.send('hello')
})
//-----------------------------------------------
//回调函数数组可以处理路由
var cb0 = function (req, res, next) {
  console.log('CB0')
  next()
}
var cb1 = function (req, res, next) {
  console.log('CB1')
  next()
}
var cb2 = function (req, res) {
  res.send('Hello from C!')
}
app.get('/example/c', [cb0, cb1, cb2])
app.listen(3000, () => {
    console.log('running...')
})
第三方中间件(body-parser)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
//挂载内置中间件
app.use(express.static('public'))
//挂在参数处理中间件(post)
app.use(bodyParser.urlencoded({extend: false}))
//处理get提交参数
app.get('/login', (req, res) => {
    let data = req.query
    console.log(data)
    res.send('get data')
})
//---------------------------------------------------------
//处理post提交参数
app.post('/login', (req, res) => {
    let data = req.body
    if(data.username == 'admin' && data.password == 123){
        res.send('success')
    }else{
        res.send('failure')
    }
})
app.listen(3000, () => {
    console.log('running...')
})


-->