看说明文档上,可以让中间件在路由函数执行前,或执行后调用
请问如何在配置中间件函数,在某个路由调用前,或者调用后执行呢?
s***@qq.com (作者)
感谢大佬一直的回复,可能是我没说清楚
我主要是不知道怎么在config.js里怎么配置声明 在 路由执行完以后 的某个中间件
const auth = require('./middleware/auth.js') // 引入 auth 中间件
const auth = require('./middleware/clear.js') // 引入 clear 中间件
module.exports = {
debug: true, // 调试模式时,将返回 stack 错误堆栈
baseDir: __dirname, // 指定应用根目录
middleware: [
[
//数组格式,第一个元素为中间件,第二个元素为中间件生效规则配置
auth(), // 注册中间件
{ enable: true, ignore: /\/login$/ }, // 配置当前中间件生效规则,该规则表示以`/login`结尾的路由不会执行 auth 中间件校验 token
],
[
clear() // ========!!!==== 如果我想在路由执行完以后,再执行clear中间件,是写在这里吗?======!!!!======
],
],
}
s***@qq.com (作者)
谢谢回复
我想问的是 next 的中间件是怎么配置的,uni的中间件与koa写的方式好像不一样,是通过config配置
const auth = require('./middleware/auth.js') // 引入 auth 中间件
module.exports = {
debug: true, // 调试模式时,将返回 stack 错误堆栈
baseDir: __dirname, // 指定应用根目录
middleware: [
[
//数组格式,第一个元素为中间件,第二个元素为中间件生效规则配置
auth(), // 注册中间件
{ enable: true, ignore: /\/login$/ }, // 配置当前中间件生效规则,该规则表示以
/login
结尾的路由不会执行 auth 中间件校验 token],
],
}
官方的配置那个示例,我理解是:
auth中间件是在所有路由执行 “ 之前 ” 执行,当遇到 login 结尾的路由不执行
我想知道的是,比如我想在路由执行完 “ 之后 ” 执行的中间,也就是调的那个next 中间件,
在config 文档中如何配置。
2022-11-15 15:52
DCloud_uniCloud_WYQ
回复 s***@qq.com: 中间件的执行也是按照这个中间件数组的顺序的,如果在auth和路由之间再加一层的话写在auth后面就行
2022-11-15 16:03
s***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 我是想在路由执行之后,再执行一个中间件。是再声明一个中间件,然后不写路由?
比如:首先执行 auth ,然后再执行路由,在路由里调next,再执行一个名叫clear的中间件
前端小白,还请大佬明示,或是能给个示例么,万分感激~~
2022-11-15 16:41
DCloud_uniCloud_WYQ
回复 s***@qq.com:
2022-11-15 17:25