有没有技术上的原因,为什么快速路线定义为前导斜线?

时间:2016-07-29 04:55:43

标签: node.js http express url-routing

我对Node.js和Express都很陌生(对于一般的http内容来说相对较新)。在浏览各种教程时,我很好奇为什么路由中定义的路径始终具有前导斜杠。你可能会使用类似router.get('/sub_path', handler);的东西安装app.use('/parent', the_router);这样的东西,然后通过像http://localhost:3000/parent/sub_path这样的地方访问整个东西。我尝试省略对get()use()的调用中的斜杠,确定已停止正常工作。

是否存在技术原因,斜线是必要的,还是只是一个任意的设计决策(可能是为了一致性或清晰度等)?我没有在服务器中看到任何错误,所以是否有一种情况是缺少斜线实际上有用的东西?

1 个答案:

答案 0 :(得分:3)

好吧,当您有http://www.somedomain.com/somepath之类的网址时,该网址中的路径为/somepath。这不是somepath。它是/somepath。因此,如果您希望将上述网址与路线相匹配,则需要匹配/somepath

我认为Express可能会“假设”每个路由字符串前面都有一个隐含的"/"并且不会让你输入它,但这会有点误导。您要求匹配的路线以/开头。

您可以使用正则表达式匹配路线,但这是我见过的唯一不使用前导/的情况。

有关设计/编写代码时实际开发人员动机的进一步讨论,您必须询问实际编写Express的人员。我们不能在这里说些什么。