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

标签 javascript regex angularjs express

我感兴趣的是有一个可以根据 URL 的基本参数(即 www.example.com/)响应文件请求的路由,例如 Express 的 res.sendFile():参数。问题在于 URL 完全是用户生成的并且完全是动态的。与 Github 类似,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/

相关文章:

javascript - 根据所选的下拉值隐藏或显示数据

javascript - 在Polymer 2中进行递归和渲染

javascript - 有条件地触发 Google 跟踪代码管理器

python - 任何字符二元组的正则表达式

regex - Mercurial/.hgignore - 如何忽略除文件夹内容之外的所有内容?

javascript - AngularJS 中的变量缓存(工厂)

java - 在 Jhipster 微服务模型上开发面向客户端的 UI 的最佳方法/实践?

javascript - HTML 表单,使 Tab 键触发缩进?

ruby - 正则表达式只返回一个匹配项

$http.jsonp 中设置的 angularjs $scope 变量在 .html 中不可用