Node express中间件

1.中间件是什么?功能?

中间件:

  1. 中间件主要针对 收到 HTTP 请求后 和 发送响应 之前,这个阶段执行的一些函数
  2. 使用 express 对象的 use 方法可以在一条路由的处理链上插入中间件
  3. 为某个path添加了中间件后,以该路径为基础的路径被访问时,都会应用到该中间件
  4. 如果为 ‘/’ 添加了中间件,则所有请求都会应用。省略第一个path参数则默认为 ‘/’
  5. Express 还提供了一个 static 中间件,可以用来处理网站里的静态文件的GET请求

功能:

  1. 执行任何代码
  2. 对请求和响应对象进行更改
  3. 结束请求/响应循环
  4. 调用堆栈中的下一个中间件函数

2.中间件类型

  1. 应用层中间件
  2. 路由中间件
  3. 错误处理中间件
  4. 内置中间件
  5. 第三方中间件

3.应用级中间件

const express = require('express')
const app = express()
function middlewareA(req, res, next) { 
    console.log('1')
    next()
    console.log('6')
}
function middlewareB(req, res, next) { 
    console.log('2')
    next()
    console.log('5')
}
function middlewareC(req, res, next) { 
    console.log('3')
    next()
    console.log('4')
}
// 1 2 3 4 5 6 
app.use(middlewareA)
app.use(middlewareB)
app.use(middlewareC)
app.listen(3000, function () { console.log('http://localhost:3000') })

4.路由中间件

const express = require("express");
var app = express();
var router1 = express.Router();
var router2 = express.Router();
router1.get("/",(req,res,next)=>{
	res.send("首页1");
});
router1.get("/user",(req,res)=>{
	res.send("用户登录1");
});

router2.get("/",(req,res,next)=>{
	res.send("首页2");
});
router2.get("/user",(req,res)=>{
	res.send("用户登录2");
});
app.use("/",router1);       // localhost => 首页1  localhost/user =>用户登录1
app.use("/login",router2)   // localhost/login => 首页2  localhost/login/user => 用户登录2
module.exports = app

5.内置中间件

  1. express.static 唯一内置的中间件,它基于 serve-static,负责在 Express 应用中提供静态资源x
  2. 通过express.static 可以用来处理网站里的静态文件的GET请求
  3. 通过express.static(root,[options])调用
    root:是要处理的静态资源的根目录,可以是绝对路径,也可以是相对路径
    [options]:可选参数用来指定一些选项

6. 第三方中间件

// Express 应用的功能通过第三方中间件来添加 (安装模块:$ npm install cookie-parser)
var express = require('express');
var app = express();
var cookieParser = require('cookie-parser'); 
// 加载 cookie 解析中间件
app.use(cookieParser());
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值