Express中间件的使用

2022-03-13  本文已影响0人  听书先生

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

中间件就是匹配路由之前或者匹配路由完成时所作的一系列的操作,叫做中间件。

app.use([path, ] callback [, callback ...])

// 1. path是可选的参数,为路由的url, 如果省略将匹配到所有路径
// 2. callback中间件函数,当路由匹配成功执行函数,函数将接受三个参数(
// req: HTTP请求对象, res: HTTP响应对象, next: 处理完后交给下一个路由,若不调用则处理到此为止,不会继续后面的操作。)
// 中间件
const express = require('express');

const app = express();

// 创建第一个中间件
app.use((req, res, next) => {
    console.log(111);
})

// 创建第二个中间件
app.use((req, res, next) => {
    console.log(222);  
})

app.listen(3000, () => console.log('Server port 3000 at start....'));

当不加上路径的时候会匹配所有路由路径,但是如果不加上尾函数next那么会无法进入到下一个中间件,也就是说网页会出现停滞状态(一直处于加载状态)。

// 中间件
const express = require('express');

const app = express();

// 创建第一个中间件
app.use((req, res, next) => {
    console.log(111);
    next()
})

// 创建第二个中间件
app.use((req, res, next) => {
    console.log(222);  
})

app.listen(3000, () => console.log('Server port 3000 at start....'));

// 111 
// 222
// 中间件
const express = require('express');

const app = express();

// 创建第一个中间件
app.use((req, res, next) => {
    console.log('middleware_1: 111');
    next()
    console.log('middleware_1: 222');
})

// 创建第二个中间件
app.use((req, res, next) => {
    console.log('middleware_2: aaa');  
    next();
    console.log('middleware_2: bbb');
});

// 创建第三个中间件
app.use((req, res, next) => {
    console.log('middleware_3: 布局');  
    next();
    console.log('middleware_3: 测试');
});

// middleware_1: 111
// middleware_2: aaa
// middleware_3: 布局
// middleware_3: 测试
// middleware_2: bbb
// middleware_1: 222



app.listen(3000, () => console.log('Server port 3000 at start....'));
// 中间件
const express = require('express');

const app = express();

app.use('/student', (req, res, next) => {
    res.send('<h1>学生界面</h1>')
    next();
})

app.use('/', (req, res, next) => {
    res.send(`<h1>首页界面</h1>`);
})

app.listen(3000, () => console.log('Server port 3000 at start....'));
// 中间件
const express = require('express');

const app = express();

// 多个回调函数的中间件
// next() 指的是进入下一个中间件或者是进入当前中间件的下一个回调函数!
app.use((req, res, next) => {
    console.log(111);
    next();
    console.log(1110111);
}, (req, res, next) => {
    console.log(222);
    next();
    console.log(2220222);
}, (req, res, next) => {
    console.log(333);
    next();
    console.log(3330333);
})

app.use((req, res, next) => {
    console.log(444);
    next();
    console.log(4440444);
});

// 111
// 222
// 333
// 444
// 4440444
// 3330333
// 2220222
// 1110111

app.listen(3000, () => console.log('Server port 3000 at start....'));
上一篇下一篇

猜你喜欢

热点阅读