我有一个在express上运行的同构应用程序:
MediaStore
目前,我在通配符上进行了匹配,因为这是我在大多数看到的材料和教程中看到的方法。
此问题现在我需要能够匹配特定路由,例如 app.get('*', (req, res) => {
match(
{ routes, location: req.url },
(error, redirectLocation, renderProps) => { ... }
和/auth
,这些路由需要以不同方式处理同构应用的路由。即/api
路由需要对用户进行身份验证。
我需要一种方法来指定那些路由,但仍然保持我的同构应用程序使用的路由的通配符匹配。
我认为不是使用通配符匹配器,而是可以将同构应用程序的所有路由收集到一个数组中并提供它来代替:
/auth
我不确定是否有更好的方法来实现这一目标?
答案 0 :(得分:1)
您可以这样编码: -
req.url.match(//regular expression);
Match()仅适用于正则表达式。
答案 1 :(得分:1)
如果您的/auth
和/api
路由未在您的应用中提供网页(即您正在使用它们进行AJAX通话),则应为其提供单独的请求处理程序。
只要在通配符get
之前指定非通配符路由,就可以使用通配符。
app.get('/auth', handleAuth);
app.get('/api', handleAPI);
app.get('*', handleRender);