微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多条路由只调用一次中间件

如何解决多条路由只调用一次中间件

我有一个仪表板的 api,它有这样的路由

/dashboardRoutes/getdata1
/dashboardRoutes/getdata2
.
.
.
/dashboardRoutes/getdata7

在后端,我使用 express router.use 将它们转移到处理程序。

router.use('/dashboardRoutes',getHirarchiEmp,dashboardRoutesHandler)
#dashboardRoutesHandler

/getdata1,handler1()
/getdata2,handler2()
.
.
.
/getdata7,handler7()

这个路由器有一个中间件 getHirarchiEmp,它将数据附加到我将在各个处理程序中使用的 req 主体,现在这个中间件在每条路由上都被调用,因为我有 7 条路由,它被调用了 7 次。有什么办法可以只调用中间件一次,并且所有处理程序中的数据也可用

解决方法

不,您不能一次生成两个中间件。 'Express Middleware' 只是链接一堆函数的一种奇特方式。需要注意的一件事是中间件是有序的。

在 Express 中,您可以将中间件设置为“全局”中间件;这意味着它将为每个传入请求调用。

Click to preview image

中间件顺序很重要,当 Express 收到请求时,每个与请求匹配的中间件都按照它初始化的顺序运行,直到出现终止操作(如发送响应) .因此,如果发生错误,所有用于处理错误的中间件将按顺序调用,直到其中一个不调用 next() 函数调用为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。