我有一个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帖子要求您有条件地检查中间件内的URL.
解决方法
试试这个:
app.use(/^\/(?!api).*/,function(req,{ html: markup })); }); });