express中间件

中间件

在node执行的过程中,在请求和应答的中间会有很多中间处理不同东西的组件,这样的组件叫做中间件。中间件的执行过程是:请求发送-第一个中间件接收-第一个中间件应答-第一个中间件请求-第二个中间件接收-第二个中间件应答-第二个中间件请求-最终应答。

具体使用:

app.use((req, res, next) => {
  req.requestTime = new Date().toISOString();
  next();
});
  1. 必须执行next函数,不然会在中间件中出不来
  2. 中间件是线性执行的,当任务在它前面就已经结束,则不会执行中间件中的代码

第三方中间件

  1. npm i morgan

  2. 使用

    const morgan = require('morgan');
    app.use(morgan('dev'));
    

    返回类似这样的东西

    GET /api/v1/users 404 4.909 ms - 151
    

param 中间件

param中间件只在包含某些参数的时候运行,在有id的时候运行

router.param('id', (req, res, next, val) => {
  console.log(`Tour id id : ${val}`);
  next();
});

链式中间件

在某个请求的前面写上检查函数,那么在该请求的时候就会根据这个中间件检查

exports.checkBody = (req, res, next) => {
  if (!req.body.name || !req.body.price) {
    return res.status(400).json({
      status: 'fail',
      message: 'Missing name or price',
    });
  }
  next();
};
router
  .route('/')
  .get(tourController.getAllTours)
  .post(tourController.checkBody, tourController.createTour);
posted @   kihyun  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示