【发布时间】:2016-09-26 01:15:35
【问题描述】:
我试图区分不同的网址。我有一个 if/else,但希望这可以在 vanilla js 中做得更好。请不要快递js。
/product
/product/1
/product/1/customer
/product
/product/2
/product/2/customer
/customer
/customer/1
/customer/1/product
/customer
/customer/2
/customer/2/product
当前策略:
if(request.url.indexOf('/product') != -1 && request.url.length == '/product'.length) {
} else if { // /product/:id
if(!request.params) request.params = {};
request.params.id = request.url.match(/^\/product\/([^\\/]+?)(?:\/(?=$))?$/i)[1];
} else { // 3rd case /product/1/customer
}
我认为我的 if/else 并没有解决上面提到的所有 uri。请提出任何解决方案,以便我可以针对不同的 url 以可重复使用的方式从上面解决所有 3 个案例,并从那里运行适当的查询。
【问题讨论】:
-
为什么不能使用express?它可以满足您开箱即用的需求。
-
更好地了解事物的运作方式
-
你看过 express js 源码了吗?
-
是的,但我无法理解那里有很多行,我有一个想法,第一个 if 应该检查长度,然后第二个块应该检查其他两种情况,?跨度>
-
您应该首先拆分 url
.split('/')。这将为您提供所有部分,您可以循环浏览和比较。
标签: javascript regex node.js routing