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'));
// 设置路由
...
// 开启监听
...