本文介绍了是否有技术原因将Express路由定义为前导正斜杠?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Node.js和Express非常陌生(一般来说,对http的东西也是相对较新的)。在阅读各种教程时,我很好奇为什么路线中定义的路径总是有一个前导正斜杠。您将拥有类似router.get('/sub_path', handler);的内容,它将使用类似app.use('/parent', the_router);的内容进行挂载,然后通过访问类似http://localhost:3000/parent/sub_path的内容来访问整个内容。我尝试省略对get()use()的调用中的斜杠,果然一切都停止了正常工作。

有没有必要使用斜杠的技术原因,或者这只是一个随意的设计决定(可能是为了一致性或清晰度之类的原因)?我没有在服务器中看到任何错误,那么是否存在这样一种情况,即没有斜杠确实有用?

推荐答案

好的,当您有一个像http://www.somedomain.com/somepath这样的URL时,该URL中的路径是/somepath。不是somepath。是/somepath。因此,如果要将上述URL与路由匹配,则需要匹配/somepath

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

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

要进一步讨论设计/编写代码时开发人员的实际动机,您必须询问实际编写Express的人。这不是我们可以在这里谈论的事情。

这篇关于是否有技术原因将Express路由定义为前导正斜杠?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 15:19