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

前端之家收集整理的这篇文章主要介绍了正则表达式 – 除了以/ api开头的所有路由运行快速中间件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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 }));
  });
});

猜你在找的正则表达式相关文章