使用无模式动态基本URL表达以呈现不同的页面

时间:2015-08-02 08:28:44

标签: javascript regex angularjs express

我感兴趣的是有一条路线可以根据URL的基本参数即res.sendFile()来回复带有文件的请求,例如express www.example.com/:parameter。问题是URL完全由用户生成并且完全是动态的。与Github类似,www.github.com/username可以呈现用户的个人资料或www.github.com/project可以呈现项目 - 但它们都是没有模式的字符串,并且机器无法知道www。 github.com/username引用用户视图,除非它进行某种类型的检查。

app.all('/*', function(req, res) {
res.sendfile('index.html', { root: config.server.distFolder });

Github根据参数响应具有不同视图的服务器请求,即使它们没有预定义模式。

即。很容易知道www.github.com/user/username是用户路由,服务器可以用用户视图进行响应(要匹配的模式是www.github.com/user/:user但是当字符串完全动态时它变为更难。(如何表达它是否应该响应用户或带有example.com/cococola等网址的项目视图?

我相信你会以某种方式检查URL参数,理解它引用(在这种情况下)项目或用户的页面,然后呈现该视图。如何在不进行同步调用的情况下执行此操作并强制用户等待服务器在响应之前检查参数字符串引用的视图类型?

我正在使用angular,是否有其他方法可以根据没有预先确定的匹配模式的URL响应不同页面的服务器请求?原因是,我想将我的网站分成许多不同的应用程序。 www.example.com/username可能需要用户的个人资料SPA,而www.example.com/projectname可能需要用户的项目SPA,但由于这些是用户定义的,因此无法根据参数的匹配模式进行响应。希望尽可能减少URL :-)

感谢任何帮助。谢谢:-)

1 个答案:

答案 0 :(得分:4)

只需使用数据库/某种键值存储,其中键是url参数,值是视图类型。然后你只需要做一个简单的查找。