Express - 使用中间件


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'));

// 设置路由
...

// 开启监听
...