node.js - 快速路由定义前导斜杠是否有技术原因?

标签 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() 调用中的斜杠,果然一切都停止正常工作。

是否有技术原因表明斜杠是必要的,或者这只是一个任意的设计决定(也许是为了一致性或清晰度或其他原因)?我没有在服务器中看到任何错误,那么是否存在缺少斜杠实际上起到了有用作用的情况?

最佳答案

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

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

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

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

关于node.js - 快速路由定义前导斜杠是否有技术原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38650755/

相关文章:

node.js - NodeJS 和 Express 拦截器

Node.js - 服务器不是构造函数() ES6

javascript - AngularJS - 如何让服务器端和客户端路由协同工作

node.js - babel-node 的永远错误

css - Chrome 通过强制 https 破坏了 css?

angularjs - 使用 Appgyver Supersonic 移动应用程序中的 Express/Nodejs 进行身份验证

node.js - 长级别升级查询

javascript - chrome中的JS文件永远不会被缓存

http - 谷歌使用 HTTP/2.0?

javascript - 从Redis返回数据仅在第二次有效