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

正则表达式 – 除了以/ api开头的所有路由运行快速中间件?

发布时间:2020-12-14 06:03:27 所属栏目:百科 来源:网络整理
导读:我有一个Express中间件,它在服务器上呈现React,就像在所有其他路径之后放在最后一样: app.use(function(req,res) { Router.run(routes,req.path,function(Handler) { var markup = React.renderToString(Handler /); res.send(swig.renderFile('views/index
我有一个Express中间件,它在服务器上呈现React,就像在所有其他路径之后放在最后一样:

app.use(function(req,res) {
  Router.run(routes,req.path,function(Handler) {
    var markup = React.renderToString(<Handler />);
    res.send(swig.renderFile('views/index.html',{ html: markup }));
  });
});

由于未指定路由,因此将为所有请求执行此中间件.我想从中排除所有/ api路由.问题是即使我在此中间件之前创建所有API路由,也总是有可能在/ api / nonexistantendpoint路径上执行此中间件.

更确切地说,我正在寻找一个正则表达式,它将使所有路径的中间件执行,除了以/ api开头的任何路径.

谢谢!

我已经查看了this SO帖子,但找不到对我有用的东西.

this post包含许多解决方法,这也不是我想要的.

This帖子要求您有条件地检查中间件内的URL.

解决方法

试试这个:

app.use(/^/(?!api).*/,function(req,{ html: markup }));
  });
});

(编辑:李大同)

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

    推荐文章
      热点阅读