泰宁新闻网

express中间件,express中间件是什么

泰宁新闻网 http://www.tainingxinwen.cn 2021-01-14 08:21 出处:网络
express中间件,express中间件是什么,nodejs之express的中间件 这个中间件的作用在于 请求/开头的路径时 优先走中间件的回调函数 中间件里的next()表示是否继续往下执行 ,有next()就继续往下走, 没有next()就不往下

express中间件,express中间件是什么,nodejs之express的中间件

express中间件,express中间件是什么

这个中间件的作用在于 请求/开头的路径时 优先走中间件的回调函数 中间件里的next()表示是否继续往下执行 ,有next()就继续往下走, 没有next()就不往下走

 

const express = require("express");
const app = express();
app.use("/",(req,res,next)= {
 console.log("中间件")
 next() // 是否继续往下执行
// test1接口
app.get("/test1",(req,res) = {
 console.log('test1');
 res.send("test1 ok")
// test2接口
app.get("/test2",(req,res) = {
 console.log('test2');
 res.send("test2 ok")
// 开启服务器
app.listen(2000,() = {
 console.log('开启在2000端口');
})

页面中

express中间件,express中间件是什么

终端打印

express中间件,express中间件是什么

简单来说 在来到/test1接口之前 有个拦截器,这个拦截器中的路径是/, 所有的接口都先走这个拦截器,在这个拦截器里做逻辑处理,允许它继续往下走就加next() ,不允许往下走就不用加next(), 因此验证上文提到的token,就可以在中间件里进行

const express = require("express");
const app = express();
app.use("/",(req,res,next)= {
 console.log("中间件")
 let {token} = req.query;
 if(token){
 next() // 是否继续往下执行
 }else{
 res.send("缺少token")
// test1接口
app.get("/test1",(req,res) = {
 console.log('test1');
 res.send(`test1 token为${req.query.token}`)
// test2接口
app.get("/test2",(req,res) = {
 console.log('test2');
 res.send(`test2 token为${req.query.token}`)
// 开启服务器
app.listen(2000,() = {
 console.log('开启在2000端口');
})

浏览器中访问/test1 不带token字段

express中间件,express中间件是什么

现在带上token字段访问/test2

express中间件,express中间件是什么

这就实现了通过中间件做全局拦截,这种中间件属于自定义拦截器.如果app.use()的第一个参数是 / 表示路径,则第一个参数可以不写,如下

app.use("/",(req,res,next)= {
 next() // 是否继续往下执行
})

等同于

app.use((req,res,next)= {
 next() // 是否继续往下执行
})

这也可以说为什么body-parser是一个中间件

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())
在使用bodyParser.json()的时候也是在app.use()方法里跟了一个函数。 中间件的使用 在app.use()里 可以加上一个回调函数,在回调函数里做一些处理 需要注意的是在合适的时机 使用next()继续执行后面的操作 为什么说这一种是全局的 ,因为所有的接口都走这里 接下来看局部中间件 局部中间件 第一个参数还是路径 第二个参数是一个function 第三个参数还是function

本文标题:express中间件,express中间件是什么
http://www.tainingxinwen.cn/qitaxinxi/601742.html

0

精彩评论

暂无评论...
验证码 换一张
取 消