Express - 使用中间件

中间件是可以访问请求对象,响应对象以及next()函数,可以完成如下任务:

  • 执行任何代码
  • 更改请求和响应对象
  • 结束请求处理
  • 调用下一个中间件

1. 全局中间件

//创建应用
const express = require('express');
const app = express();

//创建日志中间件
const logger = (req, resp, next) => {
  console.log(`${req.method} ${req.path}`);
  next();
};

//使用中间件
app.use(logger);

// 设置路由
app.get('/', (req, resp) => {
  resp.send('hello, express');
});

//开启监听
app.listen(8080, () => {
  console.log('listen on 8080');
});

2. 路由中间件

// 创建应用
...
// 创建中间件
const logger = (req, resp, next) => {
  console.log(`${req.method} ${req.path}`);
  next();
};

// 在路由中挂载中间件
app.get('/', logger, (req, resp) => {
  resp.send('hello, express');
});

// 开启监听
...

3. 创建可配置的中间件

//创建应用
...

//创建可配置中间件
const logger = (options) => (req, resp, next) => {
  const logs = [];
  if(options.method){
    logs.push(req.method);
  }
  if(options.path){
    logs.push(req.path);
  }
  console.log(logs.join(' '));
  next();
};

// 使用中间件
app.use(logger({'method':true}));

// 设置路由
...

// 开启监听
...

4. 静态资源中间件

// 创建应用
...

// 挂载静态资源中间件
app.use(express.static('./public'));

// 设置路由
...

// 开启监听
...

5. 使用第三方中间件

// 创建应用
...
// 导入body-parser中间件
const bodyParser = require('body-parser');
// 导入cookie-parser中间件
const cookieParser = require('cookie-parser');

// 使用body-parser 与cookie-parser中间件
app.use(bodyParser());
app.use(cookieParser());

// 设置路由
...

// 开启监听
...
posted @ 2022-02-19 14:35  箫笛  阅读(167)  评论(0)    收藏  举报