我感兴趣的是有一个可以根据 URL 的基本参数(即 www.example.com/)响应文件请求的路由,例如 Express 的
。问题在于 URL 完全是用户生成的并且完全是动态的。与 Github 类似,res.sendFile()
:参数www.github.com/username
可以呈现用户的个人资料,或者 www.github.com/project
可以呈现项目 - 但它们都是字符串没有模式,并且机器无法知道 www.github.com/username 引用了用户 View ,除非它进行某种类型的检查。
app.all('/*', function(req, res) {
res.sendfile('index.html', { root: config.server.distFolder });
Github 根据参数以不同的 View 响应服务器请求,即使它们没有预定义的模式。
即很容易知道 www.github.com/user/username 是一个用户路由,服务器可以用用户 View 进行响应(匹配的模式是 www.github.com/user/:user
但是当字符串完全动态时,它会变得更加困难。(express 如何知道它是否应该使用像 example.com/cococola
这样的 url 来响应用户或项目 View )?
我相信您能够以某种方式检查 URL 参数,了解它引用(在本例中)项目或用户页面,然后呈现该 View 。如何在不进行同步调用并强制用户等待服务器在响应之前检查参数字符串引用的 View 类型的情况下执行此操作?
我正在使用 Angular,是否有其他方法可以根据没有可预先确定的匹配模式的 URL 来响应不同页面的服务器请求?原因是,我想将我的网站分成许多不同的应用程序。 www.example.com/username 可能需要用户的配置文件 SPA,而 www.example.com/projectname 可能需要用户的项目 SPA,但是,由于这些是用户定义的,因此无法根据参数的匹配模式进行响应。希望保持 URL 尽可能小:-)
感谢任何帮助。谢谢:-)
最佳答案
只需使用数据库/某种键值存储,其中键是 url 参数,值是 View 类型。然后你只需要做一个简单的查找。
关于javascript - Express 使用无模式动态基本 URL 来呈现不同的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31769979/