express中间件,express中间件是什么,nodejs之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端口'); })
页面中
终端打印
简单来说 在来到/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字段
现在带上token字段访问/test2
这就实现了通过中间件做全局拦截,这种中间件属于自定义拦截器.如果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
精彩评论