【发布时间】:2015-08-24 22:31:18
【问题描述】:
我有一个处理 localhost:3000/test 的快速路由。我希望在此之后没有时间段的所有内容都可以使用相同的 router.get 命令进行渲染。我正在努力找出正确的 Javascript 正则表达式字符串。
router.get('/test/:path[\s^.]*$', function () {
//res.render etc
}
所以,当我访问 localhost:3000/test/math 或 localhost:3000/test/math/geometry 时,我希望它使用相同的路线。但是当我导航到 localhost:3000/test/math/geometry.test 我希望它使用不同的路线。我之前使用过正则表达式,只是不确定如何将它与 express params 功能结合起来。
编辑:adeno 的想法不起作用,因为我无法使用一段时间的检查正确链接我的函数。这是正则表达式的重点,所以我在执行页面逻辑之前检查了 url。
Raul 恐怕你误解了这个问题。让我试着更清楚地说明它。
我有一个这样的文件夹列表:
test
--folder1
----test1.js
----test2.js
----test3.js
--folder2
----folder2-1
----folder2-3
------test4.js
------test5.js
----test6.js
--folder3
以下网址应该有一个正则表达式来捕获它们:
test/folder1
test/folder2
test/folder2/folder2-3
另一个只捕获以下内容:
test/folder1/test1.js
test/folder2/folder2-3/test4.js
test/folder2/test6.js
就像我说的,我已经完成了正则表达式,我只是不知道如何使用 Express 的 :paramName 功能。
【问题讨论】:
-
不需要在正则表达式中转义句点吗?克拉可能需要在字符类中,但不确定;这是一个特殊字符,意思是行首。
-
你不能真正在字符串中添加正则表达式,要么使用正则表达式作为路由,要么使用字符串
-
最简单的方法可能是检查路由内一段时间的 url,然后调用
next() -
adeneo 这是一个很好的观点。我会试试的。
标签: javascript regex node.js express routes