加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通配符或正则表达式节点表示中间件上的挂载路径

发布时间:2020-12-14 05:46:46 所属栏目:百科 来源:网络整理
导读:我想根据路径的外观定义不同的中间件. 事情是道路可能会谨慎;我想支持以下路径: /chat/auth/test/chat/auth/add/chrome/auth/test/chrome/add 每次auth在路径中我都希望调用auth中间件,而对于聊天和chrome我希望调用他们各自的中间件. app.js: // Middlewa
我想根据路径的外观定义不同的中间件.

enter image description here

事情是道路可能会谨慎;我想支持以下路径:

/chat/auth/test
/chat/auth/add
/chrome/auth/test
/chrome/add

每次auth在路径中我都希望调用auth中间件,而对于聊天和chrome我希望调用他们各自的中间件.

app.js:

// Middleware authentication

var chatAuthenticate = require('./server/middleware/chat-authenticate');
app.use('/chat',chatAuthenticate(addon));

var authAuthentication = require('./server/middleware/auth-authenticate');
app.use('/auth',authAuthentication());

我知道我可以为app.js添加多个条目以用于每个可能的组合,例如/ chat / auth和/ chrome / auth,它根本不会增加复杂性,但我只是好奇它是否可以解决这与通配符或正则表达式:)

解决方法

app.use(/auth/,authAuthentication);

这将为包含auth的每个请求调用authAuthentication.需要考虑的一些事项:

>这是一个正则表达式,因此您只需要/ … /作为分隔符而不是引号
>请注意,如果您有多个与路由匹配的中间件(例如另一个与/ chat /作为RegEx,并且您调用/ auth / chat或/ chat / auth,则会调用两个中间件.因此,考虑到这一点很重要app.use()调用的顺序.
> authAuthentication需要(request,response,next)参数.如果您在示例中直接调用该函数,则该函数应返回一个将采用三个快速中间件参数的函数.
>通常的做法是将所有require调用放在脚本的顶部
>确保你完全阅读并理解Express Routing.这太棒了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读