Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express使用无模式动态基本URL呈现不同的页面_Javascript_Regex_Angularjs_Express - Fatal编程技术网

Javascript Express使用无模式动态基本URL呈现不同的页面

Javascript Express使用无模式动态基本URL呈现不同的页面,javascript,regex,angularjs,express,Javascript,Regex,Angularjs,Express,我感兴趣的是,有一个路由可以根据URL的基本参数,即www.example.com/:parameter使用文件响应请求,例如express的res.sendFile()。问题是URL完全是用户生成的,完全是动态的。与Github类似,www.Github.com/username可以呈现用户的配置文件,或者www.Github.com/project可以呈现项目,但它们都是没有模式的字符串,机器无法知道www.Github.com/username引用了用户视图,除非它执行某种类型的检查 ap

我感兴趣的是,有一个路由可以根据URL的基本参数,即
www.example.com/:parameter
使用文件响应请求,例如express的
res.sendFile()
。问题是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根据参数使用不同的视图响应服务器请求,即使它们没有预定义的模式

i、 e.很容易知道www.github.com/user/username是一个用户路由,服务器可以使用用户视图进行响应(要匹配的模式是
www.github.com/user/:user
,但当字符串完全是动态的时,它会变得更加困难。(express如何知道它是否应该以用户或项目视图响应url,如
example.com/cococola

我相信您能够以某种方式检查URL参数,了解它引用(在本例中)项目或用户的页面,然后呈现该视图。如何做到这一点,而不进行同步调用并强制用户在响应之前等待服务器检查参数字符串引用的视图类型

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


非常感谢您的帮助。谢谢:-)

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

只需使用数据库/某种键值存储,其中键是url参数,值是视图类型。然后你只需要做一个简单的查找。太好了!我想我想错了。谢谢:-)这被认为是好的做法吗?如果数据库托管在外部,那么客户端将不得不等待另一个往返请求。如果基础设施设置正确,这可能是唯一的好做法?(即服务器和数据库之间的延迟较低?)感谢您的帮助。