如何将 VueJS 前端路由重定向到快速后端路由?

时间:2021-03-31 03:25:10

标签: node.js vue.js express vue-router

我尝试创建一个 BACKEND 重定向路由('go' 路由,见下文),它将重定向到通过某个 ID 存储在我的数据库中的链接。例如,我会有一个链接:

http://backend:3000/go/slug-name-of-post

后端 ExpressJS 路由如下所示:

router
  .route('/go/:slug')
  .get(controller.go)

控制器在使用 SLUG 作为键从数据库获取 URL 后简单地执行重定向:

   url = database.getUrlBySlug(slug)
   return res.redirect(url);

这部分效果很好 - 我可以输入后端 url,它重定向得很好。

但现在我正在 VueJS FRONTEND 上工作,我想将链接包含到我的前端网页中,但我不希望此链接直接指向 BACKEND 链接 - 我希望这些链接指向我的 FRONTEND。主要原因是我希望能够共享这些链接,并且我希望链接名称包含我的 FRONTEND 名称而不是 BACKEND 和端口号等。

例如,我想在我的 FRONTEND 上链接:

http://frontend/go/slug-name-of-post

然后我希望前端(Vue-Router??)根据“slug”是什么重定向到正确的后端。其中 'slug' 定义在:http://frontend/go/:slug

实现这一目标的最佳方法是什么?我是否只是创建了一个 Vue-Router 路由?如果是这样,我如何让它重定向到不同的网页而不是前端的组件?还是我需要在前端创建一些内部重定向到后端的组件?

主要问题是我不希望用户在看到链接时看到我后端的 URL 地址 - 或共享链接等。我希望链接始终指向我的前端,因此我的前端必须处理初始路由。我想我可以让前端 VUE 组件执行一组类似的 ExpressJS 后端调用以获取要重定向到的最终 URL,然后从前端进行重定向?

提前致谢。

0 个答案:

没有答案