我正在构建一个基于分层模块化设计的Web框架。我有组件和组件扩展其他组件。
要访问这些组件,我正在寻找URL中的一个很好的语法。当我使用 Node.js 时,我对现有的Web服务器软件没有任何限制。组件只是JavaScript中的结构化对象,可以通过管道连接在一起。
我使用的URL方案是:
/componentA/componentBextendsA/componentCextendsB
现在,我想给每个组件它自己的参数。直觉上我想用基于目录的查询字符串来完成这个,比如:
/componentA?foo=bar&hello=world/componentB?foo=test/componentC?pie=
foo
= bar
hello
= world
foo
= test
pie
=空参数可以重叠,因为一个组件可以处理与另一个组件相同的查询参数。
我的问题是:
答案 0 :(得分:1)
从URI组件的角度来看,URI /componentA?foo=bar&hello=world/componentB?foo=test/componentC?pie=
由路径/componentA
和查询foo=bar&hello=world/componentB?foo=test/componentC?pie=
组成。在查询组件中,/
和?
都是有效的普通字符。因此,客户端应该正确处理此URI。
如果要按照描述的方式解析此URI,可以执行以下操作:
var url = "/componentA?foo=bar&hello=world/componentB?foo=test/componentC?pie=";
var re = /([^?]+)(?:\?([^?\/]*))/g, match, components = [];
while (match = re.exec(url)) {
components.push({path: match[1], query: match[2]});
}
答案 1 :(得分:0)
我认为这不是一个好主意。目前的趋势是简化网址,清晰度和SEO。我不知道这是否真的有效,但是?var=value
格式的pasing参数已被弃用。我开发了自己的php框架,如果你给我更多信息,也许我可以提供一些想法。 (抱歉我的英文)